硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3099|回复: 8
收起左侧

[STM32H7] 多个DMA通道同时收到消息会冲突吗?

[复制链接]

6

主题

19

回帖

37

积分

新手上路

积分
37
发表于 2022-3-4 10:26:00 | 显示全部楼层 |阅读模式
    请教各位,如果我开通多个串口通信,但是串口收发数据占用时间较长,那么如果同时多个DMA通道有收(发)数据发生的时候,会不会出现冲突,造成数据丢失的风险呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2022-3-4 12:12:30 | 显示全部楼层
没问题,由于串口的速度比较慢,所有全部打开都处理的过来。

串口中断都处理的过来。
回复

使用道具 举报

214

主题

1087

回帖

1739

积分

至尊会员

More we do, more we can do.

积分
1739
发表于 2022-3-4 13:20:11 | 显示全部楼层
不会,逻辑上DMA是硬件实现的,支持并发。
回复

使用道具 举报

6

主题

19

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2022-3-6 10:26:18 | 显示全部楼层
好的,谢谢各位大佬。我自己测试的时候没有发现有冲突的,但是各个通道都是共用的同一个DMA,不敢确认会不会存在风险
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2022-3-6 20:45:18 | 显示全部楼层
xinhaic 发表于 2022-3-6 10:26
好的,谢谢各位大佬。我自己测试的时候没有发现有冲突的,但是各个通道都是共用的同一个DMA,不敢确认会不 ...

我之前也有这种疑问
比如你使用了两个串口和使用的同一个DMA的4个通道,在某一时刻两个串口同时接收到了数据,在串口接收寄存器更新新的数据前,DMA会先后把两个串口的数据搬运到你的buff,这是由于DMA的带宽远大于串口的带宽,完全能够处理的过来
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-4-26 19:54:12 | 显示全部楼层
会有风险,同一个DMA不同通道有优先级,高优先级的优先处理,如果同时串口收发,会有丢包的风险。之前我测试过会有丢包的情况
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2023-10-16 10:52:43 | 显示全部楼层
hjfbad 发表于 2023-4-26 19:54
会有风险,同一个DMA不同通道有优先级,高优先级的优先处理,如果同时串口收发,会有丢包的风险。之前我测 ...

您好,您说的这个丢包现象是不是偶尔DMA少收数据?
回复

使用道具 举报

4

主题

170

回帖

182

积分

初级会员

积分
182
发表于 2023-10-16 16:45:49 | 显示全部楼层
同一个通道肯定不行。不同的通道随便玩
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-10-12 16:56:27 | 显示全部楼层
txl216 发表于 2023-10-16 10:52
您好,您说的这个丢包现象是不是偶尔DMA少收数据?

是不是出现串口返回的数据缺失
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:00 , Processed in 0.306274 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表