完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我的设备有4路ADC采样,最重要的是通道1。使用ADC1+DMA连续转换的模式,采样时间、采样间隔都拉到了最大,数据可以正常获取。我在1ms的tiM6中断中获取数值,每150ms的数值汇总,然后进行均值的处理;现在的困惑时,当我刚刚开机时,通道1的ADC零点值很稳定,实测是5.8mV,读取是7或者8mV,很少跳变到其他数值。但是!当进入主循环之后,ADC值开始大幅度漂移,在3-12这个范围漂移。另外我还有1个10ms的TIM7定时器。用于处理各个功能性的应用。
分析分析过程如下: 1、屏蔽掉所有while(1)的内容,只加上delay_ms()。ADC数值稳定; 2、屏蔽掉while(1)中的大部分程序,只保留key_scan()的按键操作函数。ADC数值稳定!!并且我在操作按键进行切换等功能时也是稳定的; 3、只要保留涉及到主循环内其他的判断或者操作函数时,就会异常波动; 4、最关键的一点!!!!我保存了100组数据,如果获取完毕之后,进行排序,那么我进while(1)之前的数据也会波动!!!只要去掉排序,就恢复正常!!!这里的关键点是,排序是在获取完数据之后进行的,不应该影响ADC本身的数值。所以得出如下怀疑! 怀疑:是否是因为MCU进行较高强度的工作会导致ADC偏差?有何改善方法?
|
|
相关推荐
2个回答
|
|
|
是否可以把while(1)中的函数分段打断点,看看哪段代码运行会影响RAM中的数值,从而定位一下?
|
|
|
|
|
|
ADC异常波动的原因可能是以下几个方面:
1. 程序逻辑问题:可能在主循环中的某些操作导致了ADC数值的漂移。查看主循环中的操作是否会影响ADC的采样。 2. ADC输入引脚负载问题:ADC输入引脚连接了其他电路,而这些电路对ADC输入引脚的负载会导致ADC数值出现异常波动。检查ADC引脚的连接情况,尽量减小ADC输入引脚的负载。 3. ADC参考电压问题:ADC参考电压的稳定性对ADC的采样结果有很大影响。检查ADC参考电压的稳定性,确保其在采样过程中保持不变。 4. 噪声干扰问题:可能存在外部噪声对ADC采样的干扰,导致ADC数值出现波动。可以考虑增加滤波电路来减小噪声干扰。 对于改善ADC异常波动的方法: 1. 确保程序逻辑正确,避免主循环中的操作对ADC采样造成影响。 2. 尽量减小ADC输入引脚的负载,保持ADC输入引脚的稳定性。 3. 确保ADC参考电压的稳定性,使用稳压器等方法提供稳定的参考电压。 4. 增加滤波电路以减小噪声干扰。 另外,将问题逐步分析的方法是正确的,可以逐渐添加代码,排查导致ADC异常波动的原因。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:56 , Processed in 0.815569 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
17509