单片机/MCUwilliam hill官网
直播中

王刚

7年用户 1256经验值
私信 关注
[问答]

关于单片机串口收发数据问题

mcu的UART1向外设读取数据,然后UART2将数据传到WIFI模块。但是这是串行关系,所以考虑到效率,我想让串口1的接受和串口2的发送同时执行,两个串口都用DMA的方式,可行吗?            

回帖(1)

李华

2023-10-23 16:50:45
可以实现
建议你做成这样,发送和接收都使用DMA(或者发送用DMA,接收使用中断)

首先:接收数据需要断帧和解析。解析完毕之后转发或者处理都放在主函数执行。
      中断里面只干一件事,把数据保存下来,不管对错。判断等拿到主函数处理

需要发送数据时,直接把数据传给DMA即可,不需要等待。

另外,数据帧断帧这个需要做好,不然整个通讯可能都存在问题,这个是关键。建议使用串口的IDLE中断       
举报

更多回帖

发帖
×
20
完善资料,
赚取积分