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寄存器里的数据的错误情况,第三步把数据读出来后,标志位会清空

相关推荐
@晓凡8 小时前
keil5找不到下载器
stm32
Devlab8 小时前
LVGL设计大师——网页版anyui来了!!
嵌入式硬件·物联网·低代码·ui·iot
Dr.kangder12 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
zlinear数据采集卡13 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛1392462567314 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
Rocktech_ruixun15 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人
振南的单片机世界16 小时前
SysTick硬核拆解:既是HAL_Delay的“心跳”,也是RTOS的“节拍器”
arm开发·stm32·单片机·嵌入式硬件
Lzh编程小栈17 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
Rocktech_ruixun17 小时前
机器人数据采集能力取决于什么?瑞迅科技RK3588/3576核心板方案深度解析
人工智能·嵌入式硬件·机器人
水果里面有苹果17 小时前
28-DRV8825PWPR步进电机驱动器
单片机