stm32f4 gpio模拟i2cgpio采集的数为什么是3.3v

STM32F407怎么对ADC采集的12位数据进行FFT?_百度知道
STM32F407怎么对ADC采集的12位数据进行FFT?
我看到DSP库里有CFFT,RFFT,要用哪个?怎么用呢?12位的AD数据就是0:4095的二进制实数,需要调整成Q15格式么?我就是想对采到的信号进行FFT……求高手指教
我有更好的答案
FFT算法,需要你自己做了,网上有现成的例子。你要做的是:配置好ADC采用通道;
再根据需要配置一个定时器触发ADC采样通道,读取数据存到缓存中;
根据缓存中的数据做FFT算法; 主要问题是:这个定时器设置的周期需要你自己决定,因为多久做一次FFT,需要多少采样数据都是你来决定的
采纳率:27%
1.ADC对应管脚介绍|---管脚------对应ADC----||---管脚------对应ADC----||PA0 &---& ADC123_IN0 ||
PA1 &---& ADC123_IN1 ||PA2 &---& ADC123_IN2 ||
PA3 &---& ADC123_IN3 ||PA4 &---& ADC12_IN4
PA5 &---& ADC12_IN5
||PA6 &---& ADC12_IN6
PA7 &---& ADC12_IN7
||PB0 &---& ADC12_IN8
PB1 &---& ADC12_IN9
||PC4 &---& ADC12_IN14 ||
PC5 &---& ADC12_IN15 ||PC0 &---& ADC123_IN10||
PC1 &---& ADC123_IN11||PC2 &---& ADC123_IN12||
PC3 &---& ADC123_IN13||PF3 &---& ADC3_IN9
PF4 &---& ADC3_IN14
||PF5 &---& ADC3_IN15
PF6 &---& ADC3_IN4
||PF7 &---& ADC3_IN5
PF8 &---& ADC3_IN6
||PF9 &---& ADC3_IN7
PF10&---& ADC3_IN8
|2.配置查询模式如下void ADC_Configuration(void){GPIO_InitTypeDef GPIO_InitSADC_InitTypeDef
ADC_InitSRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//初始化GPIOA的Pin_0为模拟量输入GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;GPIO_Init(GPIOA, &GPIO_InitStructure);ADC_DeInit();ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
//精度为12位
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
//扫描转换模式失能,单通道不用ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
//连续转换使能ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_N //不用外部触发,软件触发转换ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_R //数据右对齐,低字节对齐ADC_InitStructure.ADC_NbrOfConversion = 1;
//规定了顺序进行规则转换的ADCADC_InitStructure.ADC_NbrOfConversion = 1;
//规定了顺序进行规则转换的ADC通道的数目ADC_Init(ADC1, &ADC_InitStructure);ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles);//ADC,通道,1转换,所选通道的采样周期ADC_Cmd(ADC1, ENABLE);
//使能ADC_SoftwareStartConv(ADC1);
//软件启动转换}unsigned short GetADCValue(void){return ADC_GetConversionValue(ADC1);
为您推荐:
其他类似问题
fft的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。stm32f4中这是什么 GPIO_OType = GPIO_OType_PP;_百度知道
stm32f4中这是什么 GPIO_OType = GPIO_OType_PP;
我有更好的答案
GPIO_OType_PP为推挽方式,推挽方式不用接上拉电阻,而且驱动力可以更大。下面是开漏和推挽的区别:开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候。推挽输出就是单片机引脚可以直接输出高电平电压。低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。
采纳率:45%
来自团队:
为您推荐:
其他类似问题
gpio的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。第六章 GPIO 跑马灯实验正点原子探索者STM32F4开发板STM32F4开发指南_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第六章 GPIO 跑马灯实验正点原子探索者STM32F4开发板STM32F4开发指南
&&文档平台:正点原子探索者STM32F407开发板
手册名称:STM32F4开发指南
所属章节:第六章
跑马灯实验
硬件:STM32F407芯片
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩20页未读,
定制HR最喜欢的简历
你可能喜欢STM32F4 GPIO 呼吸灯【库函数操作】 - 编程浪子_ - 博客园
GPIO的一些特性,翻译自ST的参考手册 1、16组IO可用 2、推挽/开漏+上拉/下拉 3、可从ODR输出数据,也可从外设输出数据 4、每个IO速度可独立设置 5、浮空输入,上下拉输入,模拟输入 6、输入数据到IDR或者外设 7、ODR中数据可通过GPIOx_BSRR单独设置某一位。 8、IO锁定装置,可冻结IO配置。(知道下次reset) 9、模拟公呢 10、复用输入输出选择及存取 11、IO快速反转,两个时钟周期可反转一次。 12、易配置的复用功能,可使一个IO有多个功能。 本实验值用到了数字输出,控制IO反转时间以形成一组PWM波形驱动接在IO口上的LED。 【代码实现】 LED的定义:
typedef enum {& LED1 = 0,& LED2 = 1,& LED3 = 2,& LED4 = 3} Led_D static GPIO_TypeDef* LED_PORT[4]={GPIOD, GPIOD, GPIOD, GPIOD};static const u16 LED_PIN[4]={GPIO_Pin_12, GPIO_Pin_13, GPIO_Pin_14,GPIO_Pin_15}; LED的初始化函数
void LED_Init(void){&&&&& GPIO_InitTypeDef& GPIO_InitS &&&&& RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); &&&&& GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 |GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;&&&&& GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;&&&&& GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;&&&&& GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;&&&&& GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;&&&&& GPIO_Init(GPIOD, &GPIO_InitStructure);} void LEDOn(Led_Def Led)//LED亮{&&&&& LED_PORT[Led]-&BSRRL=LED_PIN[Led];} void LEDOff(Led_Def Led)//LED灭{&&&&& LED_PORT[Led]-&BSRRH=LED_PIN[Led];& } void LEDTog(Led_Def Led)//LED状态翻转{&&&&& LED_PORT[Led]-&ODR^=LED_PIN[Led];} 初始化完成后,在主函数中控制LED的通断。当PWM占空比大于一个值时候,LED亮度变化不明显,所以调整PWM的变化率使得整个过程中亮度变化均匀。当占空比太小时,LED完全没亮度,我将这段占空比取消掉了,主函数的实现如下: 没有用while(1)这个循环,照样是无休止的反复亮灭。
for(i = 100;(i&2000)&(i&=0);i=i+j){& LEDOn(LED2);& delay_us(i);& LEDOff(LED2);& delay_us(2000-i);& if( i == 1990)&&& j =-5;& if(i == 10)&&& j = 1;& if(i&=1000)&&& j = 5;& if((j == 5)&(i &= 1000))&&& j = -1;} & & Technorati 标记: ,,,}

我要回帖

更多关于 stm32f407温湿度采集 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信