STM32初学ADC-使用FFT前的必备入门

        首先需要用CubeMX配置STM32,除了基础的系统的配置之外,可以打开UART串口通讯,便于后续将采样值传输至上位机,便于调试(注:串口需要打开异步通信,配置相应的波特率,可以打开DMA和串口中断,其余配置保持默认即可)。

        之后便是配置ADC,考虑到后续需要将输入信号的采样值用FFT处理,因此ADC的采样值需要保存到一个缓冲区,不妨称之为ADC_Buffer[NPT],NPT-是你对信号的采样点数,一般使用1024个点(采样点数过小会导致相邻的采样点数之间间隔时间太长;而采样点数过多需要占用单片机太多的资源,很大概率会导致单片机的编译报错:No space...)。考虑到上述ADC采样的种种需求,对于单通道采样来说,ADC的配置保持为原来的默认即可,只需要将ADC的触发从软件触发改成TIM定时器触发并且开启DMA搬运即可。

因为FFT需要一组时域上的数据,因此DMA设置为Normal模式-ADC采样完成后便结束DMA搬运搬运数据大小改为Word,至此DMA和ADC的设置已经完成了。

        上面ADC的设置中我们需要用到定时器来触发ADC采样,简单来说就是设置一个定时器闹钟,每次定时器响了就让ADC去采样一次,那么你采样的速度(或者说频率更好)取决于你定时器设置的时间,因此在TIM的配置中,预分频和自动重装值的设置需要根据你采样的信号的频率来设置。然后你要让ADC知道你的定时器响了再去采样,因此你需要让TIM每次到点后发出一个信号,这里我们配置Update Event方便触发ADC采样。最后我们只需要打开ADC、DMA、TIM的中断即可完成全部的配置。

        全过程逻辑为:开启ADC的DMA搬运模式,因为ADC的采样需要TIM的触发,因此当前不会有任何的数据;之后打开TIM的同时,ADC自动开始采样直到你存储数据的Buffer满了,之后就会进入到你的ADC的完成中断回调函数中,在这里面建议关闭DMA采样然后设置标志位告诉主程序可以进行数据的处理。

        以上就是ADC+DMA+TIM触发的采样步骤,这也是FFT前最重要的数据准备工作。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值