硬汉嵌入式论坛

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

关于DMA通道复用的疑问

[复制链接]

98

主题

356

回帖

650

积分

金牌会员

积分
650
发表于 2018-1-30 16:16:12 | 显示全部楼层 |阅读模式
以F429的DMA1数据流0为例,串口5的接收和串口8的发送都在这个数据流里面。
串口5我需要用DMA接收数据,串口8我需要用DMA发送数据,那么如何协调他们之间的工作呢?
我暂时用的方案是平时一直让这个数据流归串口5接收数据使用,串口8发送的啥时候检查一下
此刻串口5是否在收数据,如果当前正在收数据,则等一下再发送,如果没有在收数据的话就配
置成串口8的DMA配置,发用完数据后再配置成串口5的接收模式。
以上方案我觉得唯一的问题就是如果串口8在发送数据过程中串口2来数据了可能就丢失了。
请问这么做合理吗?硬汉哥是否有更好的解决方案?



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-1-30 16:18:41 | 显示全部楼层
同一个DMA,保证不同的数据流即可。其它的用户不用操心,总线矩阵会去仲裁和处理。
回复

使用道具 举报

98

主题

356

回帖

650

积分

金牌会员

积分
650
 楼主| 发表于 2018-1-30 16:40:42 | 显示全部楼层
eric2013 发表于 2018-1-30 16:18
同一个DMA,保证不同的数据流即可。其它的用户不用操心,总线矩阵会去仲裁和处理。

像这种两个串口在一个数据流里面,是不是得考虑复用的问题了?每次使用都要重新配置一遍。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-1-30 16:41:38 | 显示全部楼层
云琴箫龙 发表于 2018-1-30 16:40
像这种两个串口在一个数据流里面,是不是得考虑复用的问题了?每次使用都要重新配置一遍。

切不要同一个数据流,数据流不是很多么,换一个即可。
回复

使用道具 举报

98

主题

356

回帖

650

积分

金牌会员

积分
650
 楼主| 发表于 2018-1-30 16:50:22 | 显示全部楼层
eric2013 发表于 2018-1-30 16:41
切不要同一个数据流,数据流不是很多么,换一个即可。

从手册上看,串口5的收和串口8的发没有其它选择了,不像串口1还有2个数据流可选。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-1-31 01:13:11 | 显示全部楼层
云琴箫龙 发表于 2018-1-30 16:50
从手册上看,串口5的收和串口8的发没有其它选择了,不像串口1还有2个数据流可选。

得想别的办法实现了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 06:25 , Processed in 0.236809 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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