打印
[技术问答]

如何用DMA的方式读写串口数据?

[复制链接]
1385|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2024-3-29 18:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口接收(或者发送)的数据比较大,如果用中断逐字节从FIFO读数据太耗时了,光盘里的找不到有关DMA读写串口的demo

哪有朋友有相关的资料,能让我参考参考,感谢

使用特权

评论回复
沙发
药无尘| | 2024-4-1 13:17 | 只看该作者
可以去网络获取

使用特权

评论回复
板凳
l1uyn9b| | 2024-4-2 14:05 | 只看该作者
对于串口接收或发送大量数据时,逐字节使用中断从FIFO读取或发送数据可能会导致性能问题

使用特权

评论回复
地板
kaif2n9j| | 2024-4-2 15:09 | 只看该作者
一般不是有DMA之类的吗

使用特权

评论回复
5
w2nme1ai7| | 2024-4-2 16:12 | 只看该作者
可以使用中断的方式实现发数据的,就会好一些

使用特权

评论回复
6
zhizia4f| | 2024-4-2 17:18 | 只看该作者
许多微控制器都支持DMA功能,可以通过DMA控制器来实现串口数据的快速传输。通过配置DMA通道

使用特权

评论回复
7
p0gon9y| | 2024-4-2 18:21 | 只看该作者
其实可以实现串口数据的批量传输,减少CPU的负载,提高数据传输效率

使用特权

评论回复
8
ex7s4| | 2024-4-3 07:43 | 只看该作者
如果无法使用DMA,可以对中断处理程序进行优化,减少中断处理的开销。例如,可以在中断处理程序中一次性处理多个字节的数据,而不是每次只处理一个字节

使用特权

评论回复
9
b5z1giu| | 2024-4-3 09:15 | 只看该作者
如果可能的话,可以考虑使用硬件流控制(如RTS/CTS或DTR/DSR)来控制数据的流动,以避免数据丢失或溢出,并提高数据传输的稳定性和效率

使用特权

评论回复
10
lix1yr| | 2024-4-3 10:02 | 只看该作者
根据具体情况,可以优化串口的配置参数,如波特率、数据位、停止位等,以提高数据传输效率

使用特权

评论回复
11
y1n9an| | 2024-4-3 11:26 | 只看该作者
可以改变一下串口的速度,估计也会好一些的

使用特权

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

本版积分规则

432

主题

2107

帖子

1

粉丝