关于STM32的DMA传输问题

2019-07-20 09:11发布

目前我们用STM32做了一款光谱仪,但是目前出现了一个问题:当光谱仪长时间不用后再次打开光谱仪进行光谱采集时发现采集上来的全是0,进入debug调试后发现程序先执行数据发送,之后才进行DMA数据传输,按照这样的逻辑下来那么下一次的数据应该是上一次的采集数据,但是之后不管采集多少次得到的全部都是0,必须重启一次后才能正常的执行先DMA传输再进行数据发送。这个问题困扰我很长时间了,请问这个有可能是哪里出了问题?还有就是,我让光谱仪的底层电路中先开机,然后我断掉了STM32的电源,总开关供电正常,然后我再次接通STM32的电源进行光谱采集,发现能够重复上述情况,请问断电后的STM32再接通电源有什么影响吗?请大神帮忙解答一下!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-07-20 12:27
帮顶
美丽的时光机器
2楼-- · 2019-07-20 12:47
 精彩回答 2  元偷偷看……
tt朝花夕拾
3楼-- · 2019-07-20 18:33
可能需要再详细描述下;你用的是串口DMA还是其他总线的DMA?发送和接收都是DMA控制的么?
再有就是打开的时候是不是没有清楚DMA的状态呢?
Sun_Fly
4楼-- · 2019-07-20 23:39
估计是你DMA  CNDTR寄存器  指针指向 你没有用好,还有DMA 配置要循环读取方式
文雅控
5楼-- · 2019-07-21 00:28
 精彩回答 2  元偷偷看……
文雅控
6楼-- · 2019-07-21 01:56
美丽的时光机器 发表于 2018-3-12 08:16
可以发一下代码片段过来大家分析一下吗(DMA相关的代码过程)

在下面,请帮忙看看谢谢了!!

一周热门 更多>