王中王开奖结果

STM32 ADC结合DMA数据采样与软件滤波处理

时间:2019-08-29 05:38  作者:admin  来源:未知   查看:  
内容摘要:模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。 由标准定时器(TIMx)和高级控制定时器(TIM1和TIM8)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。 12

  模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。

  由标准定时器(TIMx)和高级控制定时器(TIM1和TIM8)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。

  12位ADC是一种逐次逼近型模拟数字数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。

  如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。

  12 位精度,最快1uS 的转换速度,通常具备2 个以上独立的ADC 控制器,

  ADC 是个复杂的问题,涉及硬件设计,电源质量,参考电压,信号预处理等等问题。

  而且 ADC 采集到的数据是不能直接用的。即使你再小心的设计外围电路,测的离谱的数据总会出现。

  DMA用到这里就很合适。让ADC 高速采集,把数据填充到RAM 中,白小姐资料,填充一定数量,比如32 个,64 个MCU再来使用。

  // 开启ADC的DMA支持(要实现DMA功能,还需独立配置DMA通道等参数)

  // ADC转换结束以后,读取ADC_DR寄存器中的结果,转换温度值计算公式如下:

  // Avg_Slope:温度传感器输出电压和温度的关联参数,典型值4.3 mV/℃。

  滤波部分思路为:ADC正常连续采样三个通道,由DMA进行搬运,一次搬运90个数据,即为1-2-3-1-2-3循环,每个通道各30次,存在 AD_Value[30][3]中,30为每通道30个数据,3为三个通道,根据二维数组存储方式此过程自动完成。而每当一次DMA过程结束后,触发 DMA完成中断,进入滤波函数将30个数据均值成一个, 存入After_filter[3]。整个过程滤波计算需要CPU参与,而在程序中采样结果值随时均为最新,尽力解决程序复杂性和CPU负载。 x=GetVolt(After_filter[0]);即可得到即时电压值。济民救世网166833



Copyright © 2002-2011 DEDECMS. 织梦科技 版权所有 Power by DedeCms