[应用相关] ADC采集数据,全速跑和单步调试程序的结果不一样,这是什么原因呢?

[复制链接]
 楼主| stormwind123 发表于 2025-1-17 12:13 | 显示全部楼层 |阅读模式
ADC采集数据,全速跑和单步调试程序的结果不一样,这是什么原因呢?
cr315 发表于 2025-1-17 13:40 | 显示全部楼层
可能是时序问题
elephant00 发表于 2025-1-17 13:40 | 显示全部楼层
在全速运行时,由于处理器的活动增加,电源和地线可能会受到更大的干扰。这些干扰可能通过ADC的电源引脚或模拟信号路径进入ADC,从而影响采集数据的准确性。
elephant00 发表于 2025-1-17 13:40 | 显示全部楼层
单步调试时,由于处理器的活动减少,电源和地线的干扰可能相应减小,导致采集数据更为准确。
jcky001 发表于 2025-1-17 15:00 | 显示全部楼层
定时器中断处理不当?
两只袜子 发表于 2025-1-17 16:00 | 显示全部楼层
电磁干扰把
AutoMotor 发表于 2025-1-17 16:47 | 显示全部楼层
和硬件相关的调试都有可能会出一些问题的,以全速跑的为准
cr315 发表于 2025-1-17 20:00 | 显示全部楼层
估计是硬件连接问题
Amazingxixixi 发表于 2025-1-21 17:16 | 显示全部楼层
学习一下啊,还有好多需要学习的。
SophiaOP 发表于 2025-1-22 21:45 来自手机 | 显示全部楼层
数据采集时间不同吧
公羊子丹 发表于 2025-1-23 10:23 | 显示全部楼层
单步调试的时候,代码执行得比较慢,可能引起硬件上的数据采集时序不一致,比如模拟信号的变化速度太快导致采集不到准数据。
周半梅 发表于 2025-1-23 10:24 | 显示全部楼层
你看看是不是 ADC 的时钟设置太快,全速跑的时候采样时间不足,导致采集结果有偏差。
帛灿灿 发表于 2025-1-23 10:26 | 显示全部楼层
单步调试时系统会暂停,可能引起 ADC 转换过程被打断,而全速跑的时候这种问题就没有了。
童雨竹 发表于 2025-1-23 10:28 | 显示全部楼层
确保你的模拟信号输入是稳定的,有时候单步调试会让信号有更长时间的稳定过程,而全速跑则直接连续采样。
万图 发表于 2025-1-23 10:30 | 显示全部楼层
单步调试时,GPIO 电平可能因为某些中断或者时间差异导致采样值不同,注意检查模拟输入和通道切换的同步性。
Wordsworth 发表于 2025-1-23 10:31 | 显示全部楼层
如果用 DMA 搬运数据,单步调试可能让 DMA 工作异常,导致 ADC 数据和全速跑结果不一致。
Bblythe 发表于 2025-1-23 10:32 | 显示全部楼层
看看是不是缓存或优化问题,全速跑时数据可能直接走 Cache,而单步调试时每次会从内存重新读取。
Pulitzer 发表于 2025-1-23 10:33 | 显示全部楼层
单步调试会触发调试接口的一些状态变化,比如引起系统时钟的临时调整,导致 ADC 结果不一致。
Uriah 发表于 2025-1-23 10:35 | 显示全部楼层
如果用的是多通道 ADC,切换通道时序是否正确?全速跑时切换间隔可能不足,导致采集通道错乱。
Clyde011 发表于 2025-1-23 10:36 | 显示全部楼层
建议全速跑的时候把 ADC 的结果输出到串口或者存到数组里,再对比单步调试的结果,定位具体差异。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

591

主题

3622

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部