STM32(14)USART

USART:一种片上外设,用来实现串口通信,就是stm32内部的串口

USART简介

串并转换电路

串行通信和并行通信

串行:一根数据线,逐个比特位发送

为什么要串并转换

移位寄存器

USART的基本模型

通过查询SR(状态寄存器) 可知数据有没有发完,有没有接收到数据等

CR(配置寄存器)

BPR(波特率寄存器)

产生一个频率可调的脉冲信号

数据的发送

双缓冲和连续发送

TDR和移位寄存器分别对应两个缓冲

数据发送过程中的问题

1.数据发送过快导致数据覆盖

2.数据说明时候发送完成

SR(状态寄存器)

通过读取标志位获取USART的工作状态

每次向TDR中写值之前,先查询TXE标志位

TXE=1,则TDR寄存器为空,可以写

TC=1,则两个寄存器都为空,表明数据发完了

单个数据的发送

数据的连续发送

错为什么错:并不是双缓冲的连续发送

数据的接收

存在的问题:不知道什么时候读数据

有数据时,要赶紧读RDR里的数据

接收单个数据

接收多个数据

错误标志位

接收方:

数据接收方会采集码元,过采样的方式采集,以16倍的波特率采集,三次采的都是1则1,

过载错,没有及时的读数据,导致接收方的移位数据寄存器中的数据被后来的数据覆盖,则ORE为1

错误标志位只对数据的接收方有效

所以这些程序只写在数据接收方

为什么要先备份:

错误标志位指示的是当前在RDR寄存器里的数据的错误情况,第三步把数据读出来后,标志位会清空

相关推荐
LCG米31 分钟前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
深圳老胡1 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
qq_401700411 小时前
100 个 IoT 小项目,给 ESP32 入门补上实操
前端·网络·stm32
硅基造物主2 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm
简单电磁炮2 小时前
关于adc采集
stm32·单片机
HQB20262 小时前
EG1163 (S)|屹晶微电子 600V 高压同步降压半桥控制器
嵌入式硬件·硬件工程
木由里予3 小时前
UFS 4.1 HID(Host Initiated Defragmentation)功能详解
嵌入式硬件
意法半导体STM323 小时前
【官方原创】如何在STM32CubeMX2中使用UART
stm32·单片机·嵌入式硬件
辛迪聊物业数字化5 小时前
物业费收缴率从68%提升到97%落地复盘:中小物业收费系统选型避坑指南
人工智能·嵌入式硬件·物联网·网络协议·系统架构
白搞电子5 小时前
ESP-Mosaico 轮滑动画编排台:拍点吸附、完整动作编辑与工程保存
单片机·嵌入式硬件·电脑