前言
其实之前做RM比赛的时候就要有做转发器的想法,但是当时是因为云台和底盘上下分开,通过滑环相连,为了减少通讯线路,才萌生做转发器的想法,虽然最后方案讨论不够完善,所以就搁置了。现在是因为某模块以及焊死在板子上,没办法直接使用串口进行通讯,所以不得不使用串口转发的方式,来进行模块的连接。
实现串口转发的方式有很多,各有优劣。本文主要利用DMA方式实现串口转发功能。
环境
- 芯片:STM32F103RCT6(芯片仅做示例,更换32其他型号实现原理相同)
- HAL库版本:1.8.0
- STM32CubeMX版本:5.6.1
总体思路
方案一:使能两个串口的DMA接收和发送通道,使能串口空闲中断判断数据帧结束,初始化缓存数组变量。