STM32F427 DMA1和DMA2冲突

2019-07-20 06:34发布

问题描述:
       我用DMA1配合SPI2实现了SPI的发送和接收,在定时器中断中使用SPI配合DMA读取传感器数据,读取的频率是1Khz,也就是说一毫秒中断一次读取传感器数据。另外我又打开了DMA2,利用DMA2配合USART1向上位机发送其他数据,上位机又数据帧校验功能。DMA2配合USART1向上位机发送数据是5毫秒发送一次。当我把两个DMA都打开同时工作时,上位机会间断性出现误码现象,而当我官关闭了DMA1,只用DMA2配合串口发数据就不会出现乱码现象。请问大家这个问题怎么解决呢?DMA1和DMA2不是两个独立的模块吗?还是DMA1和DMA2同时访问总线出现了冲突?
     由于向上位机发送的数据量较大,不可能把SPI和USART放在一个DMA上工作,SPI要求精准的1毫秒就要触发一次,而USART在一毫秒内无法传输完一个数据帧。请大家赐教。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
KULLAR
1楼-- · 2019-07-21 08:08
我也遇到同样的问题,同时使用DMA1和DMA2时,程序跑一会就发生总线故障,只使用DMA1时,就没有问题,楼主现在有没有什么思路了
edmund1234
2楼-- · 2019-07-21 12:23
我之前同时用两个DMA没有什么问题过
KULLAR
3楼-- · 2019-07-21 14:15
 精彩回答 2  元偷偷看……
edmund1234
4楼-- · 2019-07-21 18:44
一个DMA 用了3个通道, 另一个DMA用了4个通道
不是同一时间全都开, 得最少也有两个是同时在用, 我还记得mem2mem不能同时用, 其它peripha到mem, 或者mem2peripha同用是没问题

一周热门 更多>