STM32F030RCT6 adc连续转换dma传输数据传输错误

2019-07-14 14:40发布



dma连续传输   iar中watch看见的变量值是正确的,
复制到device_status.pure_tds 中就是错误的,
printf打印也是错误的,


右对齐,3个通道,

跪求大神帮助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
kpj3026
1楼-- · 2019-07-15 00:23
求帮助!!!!,大神帮助必有重谢
滔滔不绝的滔滔
2楼-- · 2019-07-15 03:59
 精彩回答 2  元偷偷看……
ctwewer
3楼-- · 2019-07-15 06:23
未见到代码,无法找到问题所在。
判断adc_value[]应该是16bit,printf()输出是8位,查查print()数据转换是否错了
cnibooji
4楼-- · 2019-07-15 11:48
检查device_status.pure_tds 等相关变量的数据类型
zhouxk
5楼-- · 2019-07-15 15:17
先研究一下printf占用多长时间吧。
用定时器卡一下,在printf之前开定时器,结束后关定时器,看一下需要多长时间。

你在printf的过程中,完全有可能DMA的数据已经更新,你开的DMA内存太小了,它一直在更新着,DMA的速度比printf要快。这种情况你打印的时候,不需要关心具体值对不大,大致差得不多就可以了。

如果你非要这么打印,那么建议在打印和赋值之前先把DMA停掉。或者把ADC放到足够慢。
cnm7
6楼-- · 2019-07-15 18:08
检查你的变量类型,逐行检查你的变量数值的变化,找到出错的那一次

一周热门 更多>