串口的空闲状态是高电平
起始位是低电平

发送完了,,发送停止位,,停止位是高电平
USART : universal synchronous asynchronous receiver transmitter
- asynchronous : 异步的
串口主要还是异步通信

自动USRT 协议 ,,, 的数据的发送和接收
波特率发生器: 用来配置波特率 ===》 用来分频,,,在这个时钟下进行收发
不需要奇偶校验位就选8位,,需要校验位就选9位
波特率: 9600 ,,或者115200
支持同步模式,,, USART同步模式和SPI很像,,但是几乎没人用,因为需要三根线,,多占一个IO
SPI更强,,所以同步通信,,都直接用SPI
硬件流控制 hardware flow control : 解决发送方,发得太快,接收方来不及处理,,硬件控制流会增加两根线
tx rx RTS CTS
- RTS : request to send 请求发送 ,,, 表示我还能接收
- CTS : clear to send ; 允许发送 ,,, 你可以发送
DMA : direct memory access : 直接存储器访问
智能卡 : samrt card :给银行卡,SIM卡用的,,,饭卡,公交卡
IrDA : 红外通信 : 老式遥控器那种,,, 几十年前很流行,,后来被 蓝牙,wifi 取代了,,现在基本没人用
LIN总线: local interconnect network : 汽车行业使用,,, 汽车里面,,车窗,后视镜,雨刷,座椅,天窗,,这些简单设备
汽车有两种总线:
- CAN 高速 : 发动机,,ABS,变速箱
- LIN 低速 : 车窗,车灯,雨刷
LIN的本质是 = USART + 特殊协议
USART 是低位先行 LSB
在线路上发送数据时,,1个字节8位,,不可能同时发出去,,只能一位一位发,,,
所以通信协议必须规定是先发最高位还是先发最低位
I2C是高位先行
SPI: 默认是高位先行,,也可以配置成低位先行
波特率的16倍频率进行采样,,,也就是在一位的时间内,,采样16次,,,,
NE : 噪声标志位

通过这个起始位侦测,,,

串口 16倍过采样系数 (USART默认工作模式):
stm32串口接收端为了抗干扰,,1个串口数据位的时间,,硬件用系统时钟连续采样16次电平,,通过多次采样值判断该位是高电平还是低电平,,过滤剑锋毛刺干扰
- 想要生成 9600的波特率,,,需要 9600 * 16 倍的系统时钟
CH340G : usb转串口的芯片


这个vcc是CH340的电源输入脚,, 一般这个模块的排针有一个跳线帽,,, 将3.3给 CH340电源输入

跳线帽是用来选择 通信电平的,,也是用来给CH340供电的,,,
SR : 状态寄存器
DR : 数据寄存器
CR : 配置寄存器
