打印

串口是否使用DMA传输,串口驱动的选择

[复制链接]
3121|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinzhaodadi|  楼主 | 2021-6-28 17:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在调试SAMD芯片串口,最开始采用异步传输模式,通信正常。想用DMA传输方式增强实时性,这时配置驱动时,个人的经历是不同的驱动程序执行是不一样的。不知道大家有遇到过这样的问题没?
比如说选择串口异步驱动,DMA传输完成后,在回调函数里面需要先关了中断,否则会一直进回调里面执行?不知道大家也有遇到过这样的情况没?

使用特权

评论回复
沙发
yqdeso| | 2021-6-30 09:38 | 只看该作者
不会,如果用DMA去推UART的发送,那UART的发送中断是不需要的。DMA也只需设成单次就好。注意下大小端和字节对齐。

如果是接收,开UART的RX  IDLE中断,接收空闲时结束DMA并重新配置以备下次接收。

使用特权

评论回复
板凳
caigang13| | 2021-7-1 21:33 | 只看该作者
可以用DMA,这样效率更高。

使用特权

评论回复
地板
chenjun89| | 2021-7-3 08:28 | 只看该作者
DMA配置成单次模式就好了啊

使用特权

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

本版积分规则

10

主题

117

帖子

1

粉丝