STM32——串口

发布于:2025-09-08 ⋅ 阅读:(21) ⋅ 点赞:(0)

总:STM32——学习总纲

参考资源:

【免费】STmcu选型手册资源资源-CSDN下载

【免费】芯片资料STM32F103ZET6(中文版)资源-CSDN下载

【免费】STM32F1系列参考手册-V10(中)_stm32寄存器映射资源-CSDN下载

一、数据通信的基础概念

1.1 串行/并行 通信

 

1.2 单工/半双工/全双工 通信

1.3 同步/异步 通信

有时钟就是同步通信。

1.4 波特率

码元:信号经过调制,并且进行了编码。

 

M 可以理解为,进制数,比如二进制码元,M就为2。

1.5 常见的串行通信接口

二、串口(RS-232)

2.1 串口简介 

这里先学 RS-232 串口

RS-232接口 也就是DB9接口 数据 握手 地线 其他
TXD(pin3):串口数据输出 RTS(pin7):请求发送 GND(pin5):信号地 RI(pin9):振铃指示
RXD(pin2):串口数据输入 CTS(pin8):清除发送
DSR(pin6):数据发送就绪
DCD(pin1):数据载波检测
DTR(pin4):数据终端就绪

2.2 RS-232电平 与 CMOS/TTL 电平对比

所以 CMOS/TTL 不能与 RS-232 直接通信。

2.3 设备间的 RS-232 通信示意图

2.4 STM32 串口与电脑USB口通信示意图

2.5 RS-232 异步通信协议

三、STM32 的 USART

3.1 STM32 的 USART 简介

USART

UART

 

3.2 STM32 的 USART 主要特征

如何快速查看STM32某个外设的数量及其对应的引脚?

异步通信只用到 TXD&&RXD

【免费】STmcu选型手册资源资源-CSDN下载

 

【免费】芯片资料STM32F103ZET6(中文版)资源-CSDN下载

 搜索

3.3 STM32 F1 的 USART 框图

【免费】STM32F1系列参考手册-V10(中)_stm32寄存器映射资源-CSDN下载

在此链接中文版STM32F1系列参考手册第25.3节中提到。

收发引脚是 PA9 PA10

3.4 STM32 H7、F4、F7 的 USART 图(上B站)

3.5 STM32 F1、F4、F7、H7的 USART 框图简化版

3.6 设置 USART 波特率(F1)(F4、F7、H7上B站)

3.6.1 公式介绍

波特率计算公式:baud = \frac{f_{ck}}{16*USART DIV}

其中 f_{ck} 是串口的时钟即图中  f_{PCLK_{x(x=1,2)}} ,如 USART1 的时钟是 PCLK2,其他串口都是PCLK1。

PCLK2时钟来自 APB2,最高稳定值是 72M。

PCLK1时钟来自APB1,最高稳定值是36M。

寄存器值计算公式:USARTDIV = DIV_{Mantissa} + (DIV_{Fraction}/16)

DIV_Mantissa 是USARTDIV的整数部分,DIV_Fraction是USART的小数部分。

而 baud波特率由用户定义,通过波特率公式计算出 USARTDIV,再寄存器值计算公式得出整数部分DIV_Mantissa,进而可算出小数部分DIV_Fraction的值。

3.6.2 寄存器操作设置波特率演示

整型类型的特性(去整不进位),通过 +0.5 的操作实现四舍五入的效果。减小误差。

3.6.3 波特率设置寄存器操作通用公式推演(F1)

一步一步的计算寄存器存储的值来设置波特率还是繁琐。使用通用的公式会更简便。

二进制左移1位操作 等于 数值*2。那么DIV_Mantissa左移4位等于 数值*16。

USART_BRR = USARTDIV的整数部分<<4 + USART的小数部分 * 16 + 0.5
          = USARTDIV的整数部分 * 16 + USART的小数部分 * 16 + 0.5
          =(USARTDIV的整数部分 + USART的小数部分)* 16 +0.5
          = USARTDIV * 16 + 0.5

HAL库操作会更简单,赋值baud给初始化成员即可,会自动设置波特率。

3.7 USART 寄存器介绍      

【免费】STM32F1系列参考手册-V10(中)_stm32寄存器映射资源-CSDN下载

四、HAL 库外设初始化MSP回调机制

五、HAL 库中断回调机制

六、USART/UART  异步通信配置步骤

七、IO 引脚复用功能

八、编程实战:通过串口接收或者发送一个字符

九、解读例程源码:串口实验

十、课堂总结


网站公告

今日签到

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