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 />