说明:本文记录RT-Thread添加串口的步骤和串口的使用。
1.新增串口
官方链接:https://www.rt-thread.org/document/site/rtthread-studio/drivers/uart/v4.0.2/rtthread-studio-uart-v4.0.2/
新增串口只需要在 board.h 文件中定义相关串口的宏定义 BSP_USING_UARTx 及修改引脚信息即可新增串口的步骤总结如下:
1.新增对应串口的宏定义,如 BSP_USING_UART1、BSP_USING_UART2等。
2.修改串口 RX/TX 的端口,如 GPIOA、GPIOB等。
3.修改串口 RX/TX 的引脚号,如 GPIO_PIN_2、GPIO_PIN_3等
4.基于修改控制台章节新增串口 1 的示例如下
如下图,新增UART2的操作
编译并下载程序,在控制台输入 list_device 命令可以看到已经注册了两个串口设备,串口 1 和串口 2。如下图所示2.串口使用
从控制台输出的信息可以看到两个串口设备均已注册到系统中了。
2.串口使用
https://www.rt-thread.org/document/site/programming-manual/device/uart/uart/
1.串口 DMA 的使用
RT-Thread Setting 配置 DMA
如果要使用串口 DMA 的功能,需要使用 RT-Thread Setting 打开 DMA 的支持。配置路径为
RT-Thread Setting
----组件
--------设备驱动程序
------------使用 UART 设备驱动程序
----------------使能串口 DMA 模式。
配置过程如下图所示
3.配置 board.h 中的宏
如果需要使用串口 DMA 只需要在 board.h 文件中定义如下宏即可
#define BSP_UARTx_RX_USING_DMA
#define BSP_UARTx_TX_USING_DMA
UARTx 表示的是哪个串口需要使用 DMA,使用的是 DMA 的发送还是接收功能。此例中使用的是串口 2 的 DMA 接收功能,所以定义了宏 BSP_UART2_RX_USING_DMA,串口 2 使用 DMA 的配置如下所示
将 DMA 接收及轮询发送 章节中的DMA 的测试代码添加到工程中编译并下载程序,在控制台中输入 uart_dma_sample 命令,并使用 USB 转串口线连接串口 2,在串口 2 中可以看到如下打印信息。
测试程序已经成功使用 DMA 进行了接收。
4.串口相关函数使用
1.发送数据 rt_device_write()
向串口中写入数据,可以通过如下函数完成
rt_size_t rt_device_write(rt_device_t dev,
rt_off_t pos,
const void *buffer,
rt_size_t size)
参数 描述
dev 设备句柄
pos 写入数据偏移量,此参数串口设备未使用
buffer 内存缓冲区指针,放置要写入的数据
size 写入数据的大小
返回 ——
写入数据的实际大小 如果是字符设备,返回大小以字节为单位;
0 需要读取当前线程的 errno 来判断错误状态
调用这个函数,会把缓冲区 buffer 中的数据写入到设备 dev 中,写入数据的大小是 size。