打印
[STM32F0]

用了三个串口,为什么会起冲突?

[复制链接]
8322|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ihafd|  楼主 | 2021-9-23 09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STM32F072 我开了三路串口。三路的波特率都是115200. UART1 用作打印信息输出 ;UART2 用于WIFI模块控制;UART3用于4G模块控制。
UART2 和UART3都是用了串口DMA加接收空闲中断.
现在偶尔会出来UART2或UART3不能收发数据。但程序还是可以跑的。
已经调试许多天了,还是找不到问题在哪里?

是不是UART2与UART3的DMA冲突了?这种情况应该怎样解决?


感谢!!

使用特权

评论回复
沙发
LcwSwust| | 2021-9-23 09:18 | 只看该作者
本帖最后由 LcwSwust 于 2021-9-23 09:21 编辑

115200的波特率并不算高,不至于使DMA冲突,检查程序吧。
若怀疑DMA,就不用DMA,用接收中断试试。

使用特权

评论回复
板凳
lvyunzeng| | 2021-9-23 09:25 | 只看该作者
DMA冲突,你怀疑的对。使用直接发送中断形式发送与接收。

使用特权

评论回复
地板
ihafd|  楼主 | 2021-9-23 09:34 | 只看该作者
这问题,真难找原因。调了一个星期了,都找不到具体问题是哪里!啊!!!!!!!!

使用特权

评论回复
5
yongwong9901| | 2021-9-23 09:55 | 只看该作者
贴上代码看看

使用特权

评论回复
6
一叶倾城wwq| | 2021-9-23 10:06 | 只看该作者
我用F103的开5路串口+2路模拟串口,也还可以,没有DMA

使用特权

评论回复
7
ihafd|  楼主 | 2021-9-23 10:15 | 只看该作者
代码比较长,我都不知道怎样贴上来。

使用特权

评论回复
8
Bobby13| | 2021-9-23 10:20 | 只看该作者
ihafd 发表于 2021-9-23 10:15
代码比较长,我都不知道怎样贴上来。

放github或者gitee

使用特权

评论回复
9
match007| | 2021-9-23 10:29 | 只看该作者
逻辑上有没有问题呢

使用特权

评论回复
10
呐咯密密| | 2021-9-23 11:07 | 只看该作者
如果单个调试每个串口都没问题,好好看看逻辑,是不是有哪里冲突了。比如哪个中断优先级高,导致你的串口空闲中断无法触发。可以适当屏蔽部分功能,只测试这两个串口看看

使用特权

评论回复
11
m564522634| | 2021-9-23 13:45 | 只看该作者
应该是你的dma有问题,三路串口 通讯速度也不高

使用特权

评论回复
12
香水城| | 2021-9-23 14:08 | 只看该作者
建议适当简化下代码,确认下程序逻辑方面是否有问题。虽说你用DMA收发,往往相关程序逻辑还是CPU在控制的。

使用特权

评论回复
13
w494143467| | 2021-9-23 17:14 | 只看该作者
怎么知道UART2和UART3不能收发数据的?

使用特权

评论回复
14
二哲科技| | 2021-9-23 17:15 | 只看该作者
很有可能是DMA的锅,先关了看看能不能行!

使用特权

评论回复
15
ningling_21| | 2021-9-23 19:52 | 只看该作者
不用DMA有没问题?

使用特权

评论回复
16
keaibukelian| | 2021-10-10 12:33 | 只看该作者
硬件上有共用的引脚吗

使用特权

评论回复
17
labasi| | 2021-10-10 12:34 | 只看该作者
如何确认没有发送数据啊

使用特权

评论回复
18
paotangsan| | 2021-10-10 12:36 | 只看该作者
冲突的具体表现是什么呢

使用特权

评论回复
19
renzheshengui| | 2021-10-10 12:38 | 只看该作者
不使用dma可以吗

使用特权

评论回复
20
wakayi| | 2021-10-10 12:38 | 只看该作者
会不会是cpu占用的啊

使用特权

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

本版积分规则

290

主题

844

帖子

3

粉丝