打印
[应用相关]

STM32F103C8T6的外设DMA共用通道冲突怎么解决?

[复制链接]
857|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2021-12-27 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是用I2C和串口都用到了DMA,结果通道冲突了,然后我就加了互斥锁,且在串口或I2C外设使用DMA时就把所有用到这个DMA通道的外设都关闭了DMA功能,然后单独打开当前外设的DMA功能来使用。我是硬件I2C + DMA + 中断这么用的。
现在的问题是能用,串口和I2C都能用,就是用着用着会卡死,开了看门狗的,而且是不同任务的调用,且获取互斥锁是阻塞式的。我不知道是中断出问题了,还是因为频繁的切换DMA配置出问题了,因为每次调用都要更改DMA配置(内存地址、数据量、外设内存地址)。

使用特权

评论回复
沙发
jcky001| | 2021-12-27 15:40 | 只看该作者
选择其中一个串口用中断的方式操作吧。这样避免冲突。

使用特权

评论回复
板凳
cr315| | 2021-12-27 15:40 | 只看该作者

换一个端口

使用特权

评论回复
地板
呐咯密密| | 2021-12-27 19:06 | 只看该作者
查一下DMA通道和GPIO的对应关系,可以将其中一个重定向的

使用特权

评论回复
5
zyj213| | 2021-12-31 15:09 | 只看该作者
没遇到过啊,最后楼主解决了么

使用特权

评论回复
6
shjuturt| | 2021-12-31 15:39 | 只看该作者
我觉得不会吧,把中断这块处理优化一下呢

使用特权

评论回复
7
ksjdisa| | 2021-12-31 16:20 | 只看该作者
频繁切换DMA应该没啥问题吧

使用特权

评论回复
8
ppaakala| | 2021-12-31 16:20 | 只看该作者
I2C可以不用DMA,这样是不是就能好一些呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2038

主题

7364

帖子

10

粉丝