1.USTRA串口协议
通信的目的:将一个设备的数据传送到另一个设备上,扩展硬件系统
通信协议:指定通信的规则,通信双方按照协议规则进行数据收发
1.USART串口:引脚TX为数据发送脚,RX是数据接收脚
2.I2C通信:SCL时钟,SDA为数据
3.SPI通信:SCLK是时钟,MOSI是主机输出数据脚,MISO是主机输入数据脚,CS为片选,用于指定通信对象
4.CAN通信:CAN_H和CAN_L表示差分数据脚
5.USB通信:DP和DM是差分数据脚
补充:
全双工:指通信双方能够同时进行双向通信(两根数据线)
使用差分信号可以极大提高抗干扰特性,传输速度距离都非常高
串口通信:串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信;单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力
硬件电路
1.简单双向串口通信有两根通信数据线(发送端TX和接收端RX)
2.TX与RX要交叉连接
3.当只需要但香港的数据传输是,可以指=只姐一根通信线
4.当电平标准不一致时,需要加电平转换芯片
电平标准
电平标准是数据 1 和数据 0 的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
TTL 电平:+3.3V 或 + 5V 表示 1,0V 表示 0
RS232 电平:-3~-15V 表示 1,+3~+15V 表示 0
RS485 电平:两线压差 + 2~+6V 表示 1,-2~-6V 表示 0(差分信号)
串口参数及时序
波特率:串口通信的速率,决定每隔多久发送一位
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据为计算得来,分为无校验、奇校验、偶校验
停止位:用于数据帧间隔,固定为高电平
2.USTRA串口外设
USTRA:通用同步 / 异步收发器
USART 是 STM32 内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从 TX 引脚发送出去,也可自动接收 RX 引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里
自带波特率发生器,最高达 4.5Mbits/s
可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)
可选校验位(无校验 / 奇校验 / 偶校验)支持同步模式、硬件流控制、DMA、智能卡、IrDA、LIN
STM32F103C8T6 USART 资源:USART1、USART2、USART3
波特率发生器
发送器和接收器的波特率由波特率寄存器BRR里的DIV确定
计算公式:波特率 = f_{PCLK2/1}/ (16 * DIV)
数据模式
HEX模式/十六进制模式/二进制模式:以原始数据的形式展示
文本模式/字符模式:以原始数据编码后的形式显示
Unicode字符集:最常用的传输形式是UTF8
3.USART串口数据包
HEX数据包
1.固定长度
2.可变包长,含包头包尾
3.接受思路:
文本数据包
1.固定包长,含包头包尾
2.可变包长,含包头包尾
3.接收思路
补充:数据包的作用是把一个个单独的数据给打包起来,方便进行多字节的数据通信