当前位置:   article > 正文

RT-Thread: 串口操作、增加串口、串口函数

RT-Thread: 串口操作、增加串口、串口函数

说明:本文记录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 文件中定义如下宏即可

  1. #define BSP_UARTx_RX_USING_DMA
  2. #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()

向串口中写入数据,可以通过如下函数完成

  1. rt_size_t rt_device_write(rt_device_t dev,
  2. rt_off_t pos,
  3. const void *buffer,
  4. rt_size_t size)
  5. 参数 描述
  6. dev 设备句柄
  7. pos 写入数据偏移量,此参数串口设备未使用
  8. buffer 内存缓冲区指针,放置要写入的数据
  9. size 写入数据的大小
  10. 返回 ——
  11. 写入数据的实际大小 如果是字符设备,返回大小以字节为单位;
  12. 0 需要读取当前线程的 errno 来判断错误状态

调用这个函数,会把缓冲区 buffer 中的数据写入到设备 dev 中,写入数据的大小是 size。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/46540
推荐阅读
相关标签
  

闽ICP备14008679号