【stm32】学习笔记——USART通讯
串口
通讯
stm32有许多功能还是没有,就需要外挂其它设备,就需要通讯
通讯协议
制定通讯制度,通讯双方都以此协议实现数据收发
引脚RX(接收)和TX (发送)
全双工 异步 点对点 单端
硬件电路
注意:
TX与RX要交叉连接当只需单向的数据传输时。
当电平标准不一致时,需要加电平转换芯片(一般都是TTL电平)
几种常用的电平标准:
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3-15V表示1,+3+15V表示0
RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)
串口参数和时序
串口参数和时序单位
波特率:串口通信的速率 比特率:每秒传输的比特位
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来,起审核的作用,如果奇校验保证数据的1有奇数个。当传到对方设备时,他就通过奇偶校验位来判断数据是否错误,错误了就舍去。
停止位:用于数据帧间隔,固定为高电平
USART
USART同步异步收发器
UART异步收发器
基本结构
注:
当数据从TDR传输到以为寄存器时,会置一个标志位(TXE).
当数据从接收移位寄存器传输到RDR时,会置一个标志位(RXNE)
波特率发生器
波特率由波特寄存器里的 BRR里的DIV确定的
存器传输到RDR时,会置一个标志位(RXNE)
波特率发生器单位
波特率由波特寄存器里的 BRR里的DIV确定的
计算公式:波特率=主频频率/(16*DIV)