STM32的ADC通过DMA传送数据丢失了8位

[复制链接]
andyjian 发表于 2013-10-27 20:46 | 显示全部楼层
应该是数据类型的问题,大哥
LSQHHH 发表于 2013-10-28 12:23 | 显示全部楼层
初始化改成这样试试
DMA_Configuration();
ADC_Configuration();
 楼主| siabc 发表于 2013-10-28 14:56 | 显示全部楼层
LSQHHH 发表于 2013-10-28 12:23
初始化改成这样试试
DMA_Configuration();
ADC_Configuration();

改了,还是不行
香水城 发表于 2013-10-28 15:15 | 显示全部楼层
LZ,你调了两周,有没有试过ST官方标准外设固件库中的ADC DMA例程呢?
 楼主| siabc 发表于 2013-10-28 17:02 | 显示全部楼层
香水城 发表于 2013-10-28 15:15
LZ,你调了两周,有没有试过ST官方标准外设固件库中的ADC DMA例程呢?

没有啊,请问哪里有下载的,太感谢了,又让我看到了希望
 楼主| siabc 发表于 2013-12-8 09:14 | 显示全部楼层
ticomi 发表于 2013-10-17 07:31
我使用的DMA采集是正常的,前提是在ADC转换完成启动DMA期间必须关中断!

你好,可否把你成功的程序给我参考参考呢?十分感谢
ticomi 发表于 2013-12-8 13:56 | 显示全部楼层
siabc 发表于 2013-12-8 09:14
你好,可否把你成功的程序给我参考参考呢?十分感谢

DMA_Stucture.DMA_MemoryBaseAddr=(u32)&AD_Data;//内存地址
内存地址还是改为增加吧,不然每次采集都往一个地址存储怎么看出有多个数据采集进来呢?把内存地址改为自动增加试试!!
ahuzjh 发表于 2013-12-8 15:38 | 显示全部楼层
我是来学习经验的,不知道大神说的STM32的DMA不靠谱可是真的。
 楼主| siabc 发表于 2013-12-9 08:47 | 显示全部楼层
ticomi 发表于 2013-12-8 13:56
DMA_Stucture.DMA_MemoryBaseAddr=(u32)&AD_Data;//内存地址
内存地址还是改为增加吧,不然每次采集都往 ...

出来了,还是谢谢你。不是内存地址的问题而是DMA数据宽度写错了,两个都写了MEMERY一个是外设的,先写了寄存器才把这个找出了,现在两眼冒星:sleepy:
momingwei 发表于 2013-12-11 15:04 | 显示全部楼层
DMA_Stucture.DMA_PeripheralDataSize=DMA_MemoryDataSize_HalfWord; //外设数据为16位
DMA_Stucture.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;//从外设读到内存的数据的长度为两个字节16位

第一个不对吧
momingwei 发表于 2013-12-11 15:05 | 显示全部楼层
DMA_Stucture.DMA_PeripheralDataSize=DMA_MemoryDataSize_HalfWord; //外设数据为16位
DMA_Stucture.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;//从外设读到内存的数据的长度为两个字节16位

第一个不对吧
739141300 发表于 2014-11-11 14:36 | 显示全部楼层
问题的根源在于:开开启DMA传输前,还要先发出DMA请求
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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