donatello1996 发表于 2017-3-3 12:13:38

STM32F429Disco ADC1_DMA实验BUG修复

    之前做的ADC1_DMA实验出现数据跳动的严重错误,经过询问群里的大神后得出原因,原来是跟DMA的外设数据流格式和内存数据流格式有关,之前的实验中外设和内存的数据流格式均为一个字节,即8位(半字),而实际上ADC的值应为int型(16位,两个字节),若用一字节格式存储ADC的值,当值大于255时是会溢出的,溢出则数据重新归零,所以之前的实验,我在调节电位器旋钮的时候,数据会出现归零跳动,原因就是数据溢出,现在把外设和内存的数据流格式都调整为完整的全字之后,没有再出现数据归零跳动的现象。至于只改外设的数据格式或是只改内存数据格式还是两个都改,我都试过,结果是一样的,不过为了程序规范,还是统一都改最好。除此以外,ADC使用DMA通道时必须开启连续模式,不然得出结果仍与实际不符。

    上传一份工程文件+头文件。



野火_firege 发表于 2017-3-3 13:48:33

:lol                  

zero99 发表于 2017-3-3 13:58:10

谢谢分享,期待更多的评测啊 :lol

kunchen 发表于 2017-3-3 14:49:31

谢谢分享

小师弟 发表于 2017-3-5 12:53:03

:) 学习学习DMA一直么又尝试去用,不知道好不好、
页: [1]
查看完整版本: STM32F429Disco ADC1_DMA实验BUG修复