第三章 基于rtthread标准库的串口和shell应用

发布于:2025-07-05 ⋅ 阅读:(14) ⋅ 点赞:(0)

1 串口介绍

STM32F429IGT6 最多可提供 8 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、支持调制解调器操作、智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA 等。

1,串口时钟使能。串口作为 STM32F429 的一个外设,其时钟由外设时钟使能寄存器控制,这里我们使用的串口 1 是在 APB2ENR 寄存器的第 4 位。APB2ENR 寄存器在之前已经介绍过,这里不再介绍。只是说明一点,就是除了串口 1 和串口 6 的时钟使能在 APB2ENR 寄存器,其他串口的时钟使能位都在 APB1ENR 寄存器。

2,串口波特率设置。在 5.3.2 节,我们已经介绍过了,每个串口都有一个自己独立的波特率寄存器 USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的。具体实现方法。

3,串口控制。STM32F429 的每个串口都有 3 个控制寄存器 USART_CR1~3,串口的很多配置都是通过这 3 个寄存器来设置的。这里我们只要用到 USART_CR1 就可以实现我们的功能了。

在这里插入图片描述
起始位:表示数据传输的开始,电平逻辑为 “0” 。

数据位:可能值有 5、6、7、8、9,表示传输这几个 bit 位数据。一般取值为 8,因为一个 ASCII 字符值为 8 位。

奇偶校验位:用于接收方对接收到的数据进行校验,校验 “1” 的位数为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。

停止位: 表示一帧数据的结束。电平逻辑为 “1”。

波特率:串口通信时的速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数 bit/s(bps)。常见的波特率值有 4800、9600、14400、38400、115200等,数值越大数据传输的越快,波特率为 115200 表示每秒钟传输 115200 位数据。

1.1 硬件介绍

P4 的 RXD 和 TXD 用跳线帽与 PA9 和 PA10 连接起来。
在这里插入图片描述

1.2 stcubemx 配置

1.2.1 配置usart

这个配置不影响默认的配置,这里可以随便配置。 rtthread 可以随时配置系统。
在这里插入图片描述

1.2.2 配置优先级

在这里插入图片描述

1.2.4 生成代码

点击生成自动代码

2 构建工程

2.1 增加usart.c 文件

在Scconstript的里面,添加usart.c 的文件
在这里插入图片描述

2.2 配置Kconfig的文件

启动usart1, usart1 默认连接到shell调试口。
在这里插入图片描述

2.3 重构文件

在env的环境中,输入 `

$ scons --target=mdk5 -s`

在这里插入图片描述

3 Finshell 应用

3.1 硬件配置

系统默认在drv_common.c 、drv_usart.c 和 serial.h 的文件中默认调用配置。

在这里插入图片描述

3.2 shell 指令介绍

在 RT-Thread 中默认内置了一些 FinSH 命令,在 FinSH 中输入 help 后回车或者直接按下 Tab 键,就可以打印当前系统支持的所有命令。

msh 模式下,按下 Tab 键后可以列出当前支持的所有命令。默认命令的数量不是固定的,RT-Thread 的各个组件会向 FinSH 输出一些命令。例如,当打开 DFS 组件时,就会把 ls,cp,cd 等命令加到 FinSH 中,方便开发者调试。

以下为按下 Tab 键后打印出来的当前支持的所有显示 RT-Thread 内核状态信息的命令,左边是命令名称,右边是关于命令的描述:

msh />
RT-Thread shell commands:
pin              - pin [option]
reboot           - Reboot System
help             - RT-Thread shell help.
ps               - List threads in the system.
free             - Show the memory usage in the system
clear            - clear the terminal screen
version          - show RT-Thread version information
list             - list objects


msh />list
Usage: list [options]
[options]:
    thread     - list threads
    timer      - list timers
    sem        - list semaphores
    mutex      - list mutexs
    event      - list events
    mailbox    - list mailboxs
    msgqueue   - list message queues
    memheap    - list memory heaps
    mempool    - list memory pools
    device     - list devices
    fd         - list file descriptors
msh />

3.3 指令运行

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到