当前位置: 首页 > news >正文

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 文件中定义如下宏即可

#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。

http://www.lryc.cn/news/288039.html

相关文章:

  • 自然语言处理的新突破:如何推动语音助手和机器翻译的进步
  • vue3 + jeecgBoot 获取项目IP地址
  • Java Server-Sent Events通信
  • [蓝桥杯]真题讲解:冶炼金属(暴力+二分)
  • Fastbee开源物联网项目RoadMap
  • Linux文件管理技术实践
  • Python如何按指定列的空值删除行?
  • 【云原生】Docker的镜像创建
  • 大语言模型推理提速:TensorRT-LLM 高性能推理实践
  • 全面理解“张量”概念
  • MacOS X 安装免费的 LaTex 环境
  • 深入Amazon S3:实战指南
  • Ansible自动化运维(三)Playbook 模式详解
  • LCS板子加逆向搜索
  • 不同知识表示方法与知识图谱
  • Kotlin程序设计 扩展篇(一)
  • 星环科技基于第五代英特尔®至强®可扩展处理器的分布式向量数据库解决方案重磅发布
  • 一体化运维的发展趋势与未来展望
  • 科技云报道:金融大模型落地,还需跨越几重山?
  • C语言入门到精通之练习34:求100之内的素数
  • Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
  • Oracle按日周月年自动分区
  • 单元测试、模块测试、web接口测试
  • DAY10_SpringBoot—SpringMVC重定向和转发RestFul风格JSON格式SSM框架整合Ajax-JQuery
  • 刘润-进化的力量2 一刷 笔记
  • 用Excel辅助做数独
  • arcgis实现截图/截屏功能
  • mysql备份
  • CentOS7 安装PostgreSQL以及配置服务
  • React 表单、处理受控表单组件、非受控组件