STM32
直播中

晴兮晴兮

11年用户 566经验值
私信 关注
[问答]

STM32串口的相关操作有哪些呢

STM32串口的复位该怎样去实现呢?
STM32串口的发送与接收是通过什么去实现的?


回帖(1)

周静

2021-12-7 10:35:35
STM32串口的相关操作


  • 串口时钟的使能
    串口1的时钟使能是在APB2END,其他串口的时钟使能都在APB1ENR 寄存器下图为APB2END寄存器的各位描述






2.串口的复位
在相应的寄存器的找到该串口的复位设置位,通过向该位写1来复位串口,写0结束复位。
3.串口的波特率设置
每一个串口都有自己的一个波特率寄存器,通过配置该寄存器可以完成配置不同的波特率。
4.串口的控制
STM32每一个串口都有3个控制寄存器,USART_CR1~3,下图为USART_CR各位描述





TXIE 为发送缓冲区空中断使能位,设置该位为 1,当 USART_SR 中的 TXE 位为
1 时,将产生串口中断。TCIE 为发送完成中断使能位,设置该位为 1,当 USART_SR 中的 TC
位为 1 时,将产生串口中断。RXNEIE 为接收缓冲区非空中断使能,设置该位为 1,当 USART_SR
中的 ORE 或者 RXNE 位为 1 时,将产生串口中断。TE 为发送使能位,设置为 1,将开启串口
的发送功能。RE 为接收使能位,用法同 TE。
5.数据发送与接收。
STM32 的发送与接收是通过数据寄存器 USART_DR 来实现的,USART_DR是双寄存器,包含了TDR 和 RDR,下图为USART_DR寄存器。





6.串口状态
串口状态可以用寄存器USART_SR读取,该寄存器的各位描述如下图所示
同样的,



用FlyMcu进行串口调试时必须配置好相应的数据,如相应的程序文件、串口及波特率等
同样的,在运行串口调试助手的时候,也应配置好相应的选项。










备注:u8 是 unsigned char
u16 是 unsigned short
u32 是 unsigned int
系统时针设计 Stm32_Clock_Init(9);
串口初始化(72M晶振,波特率为115200) uart_init(72,115200);
延时初始化 delay_init();
与LED相连接的硬件接口初始化 LED_Init();
以下为个人体会:
在编写串口程序的时候,一定要严格按照板子的原理图来操作,下载调试的时候也要注意自己所要操作板子的芯片,选择所适合的下载方式,一步一步来,才能把所写好的程序下载到板子里。
关于串口的操作部分的描述,参考STM32F1开发指南寄存器版本。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分