STM32-USART串口协议
USART串口协议
•通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统
•通信协议:制定通信的规则,通信双方按照协议规则进行数据收发
就是我们并不能在芯片上设计完全部的一下子完成所有的设计,我们总需要一些外设 所以需要学会通信接口 掌握通信协议来沟通 STM32芯片与其他外设
就像是你要去作弊 你和好朋友会约定一个口号比如说咳嗽为信号 这就是通信 另外 你们相约1根手指为A 2根手指为B 3根手指为C 等等 这就是通信的规则 也叫通信协议
对于第一种USART 它有两种引脚 TX RX TX是发送端 RX是接收端 有的地方也叫TXD RXD 这两种其实是同一种东西
全双工指的是通信双方可以同时相互传递信息 只有一根数据线叫半双工 或者说不能叫只有一根数据线 因为可能两根数据线组合成一种大的数据线
在我们这里判断时序的变化 因为 I2C 和 SPI有单独的时钟线 所以是对于它们两者来说时钟是同步的
单端信号引脚的高低电平都是对GND的电压差 所以准确的来说 前三个情况下 其实都要加一个GND 没有GND 是无法实现通信的
而下面两个是靠差分信号的电压差来控制电平的 所以并不需要加GND 而USB在使用中有些时候还是需要添加GND的 使用差分信号 可以极大的提高信号的抗干扰能力
而最后一列的设备选项是这样的 点对点指的是 从一个设备到另一个设备点对点的传输 而 多设备指的是 举个例子 就像是在教室里 老师给一群学术讲课
串口通信
•串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
•单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力
USART 串口通信选取的各个引脚
电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3-15V表示1,+3+15V表示0
RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)
一般来说整个数据帧中会有2种情况 一种是数据帧一共有10位 还有一种数据帧有11位 其中区别就在于是否在数据位第八位后添加一个奇偶校验位
串口的主要参数需要注意的
•波特率:串口通信的速率
•起始位:标志一个数据帧的开始,固定为低电平
•数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
•校验位:用于数据验证,根据数据位计算得来
•停止位:用于数据帧间隔,固定为高电平
始位是这样得来的,就是我们把空闲状态全部视为高电平1 而后的起始位必须是低电平0 用来打破这种高电平的垄断
停止位: 也是如此 ,必须固定是高电平 1 用来表示真正的结束