[技术问答] 如何用DMA的方式读写串口数据?

[复制链接]
1752|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之类的吗
w2nme1ai7 发表于 2024-4-2 16:12 | 显示全部楼层
可以使用中断的方式实现发数据的,就会好一些
zhizia4f 发表于 2024-4-2 17:18 | 显示全部楼层
许多微控制器都支持DMA功能,可以通过DMA控制器来实现串口数据的快速传输。通过配置DMA通道
p0gon9y 发表于 2024-4-2 18:21 | 显示全部楼层
其实可以实现串口数据的批量传输,减少CPU的负载,提高数据传输效率
ex7s4 发表于 2024-4-3 07:43 | 显示全部楼层
如果无法使用DMA,可以对中断处理程序进行优化,减少中断处理的开销。例如,可以在中断处理程序中一次性处理多个字节的数据,而不是每次只处理一个字节
b5z1giu 发表于 2024-4-3 09:15 | 显示全部楼层
如果可能的话,可以考虑使用硬件流控制(如RTS/CTS或DTR/DSR)来控制数据的流动,以避免数据丢失或溢出,并提高数据传输的稳定性和效率
lix1yr 发表于 2024-4-3 10:02 | 显示全部楼层
根据具体情况,可以优化串口的配置参数,如波特率、数据位、停止位等,以提高数据传输效率
y1n9an 发表于 2024-4-3 11:26 | 显示全部楼层
可以改变一下串口的速度,估计也会好一些的

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

本版积分规则

541

主题

3413

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部