最近使用RTT时用到了多个串口,因为每个串口需要配置不同的波特率,作为初学者按照rtt官方文档没配置成功,于是找到了另一种解决方法,已验证成功,分享出来希望对大家有所帮助,也希望各位大佬多多指点,谢谢!
当我们使用多串口时首先需要在board.h中添加串口的宏定义以及收发引脚,比如我现在用到了串口1-5配置如下:
这时所有串口使用的配置为默认的配置,在serial.h中的如下结构体
然后我们编译下载程序启动终端如下,这时我们使用的波特率为115200
我调试串口用的是uart4,下面是当前串口终端输出的数据
为了方便查看我们先屏蔽main函数中的Hello RT-Thread!串口输出,然后再编译下载程序:
在终端上输入list_device命令回车,内容如下,可以看到5个串口都已经有了
当串口都添加完成后我们来修改每个串口的波特率,如下图打开drivers->drv_usart.c定位到文件最下方
int rt_hw_usart_init(void)即串口初始化函数,在这个函数里会对各串口进行初始化的相关配置如下:
然后我们在添加serial_uart结构体如下:
至此修改完毕,我们来验证一下,我这里终端用的是串口4,我们来修改一下串口4的波特率为9600然后打开串口终端看一下数据是否正确:
可以看到波特率9600,数据也正确,至此完成各串口独立配置,希望对初学者有所帮助,也希望大佬不吝赐教。
原作者:夲爷已嫁
|