基础知识
- 串行通信又称为通用异步收发器(Universal Asyn-chronous Receiver-Transmitters,UART) 或者 串行通信接口(Serial Communication Interface,SCI)
- 一般需要三根线:
- 发送线(TxD)
- 接收线(RxD)
- 地线(GND)
- 数据以字节为单位发送,按位的顺序从一条线发送
- 串行通信分为:
- 异步通信:在一个字节数据发送完成后,发送停止位***,若继续发送下一个字节则需要重新发送开始位*
- 同步通信
波特率
位长: 位的持续时间,倒数为单位时间内传送的位数
波特率: 每秒钟内传送的位数
奇偶效验
1. 奇校验检查
字符数据中1
的数目为偶数,检验位为1
,否则为检验位为0
例如:字符数据
1010010
中,使用奇检验,则检验位为0
;偶检验则为1
TTL电平(Transistor Transistor Logic)
1
和 0
的特征电压分别为 2.4V 和 0.4V (在3V供电的MCU,特征值有变动)
UART 的寄存器
- 波特率寄存器:设置波特率
- 控制寄存器:设置通信格式、是否校验,可能存在多个
- 状态寄存器:是否有数据可收、数据是否发送出去,可存在多个
- 数据寄存器:存放发送和接收的数据,只有一个
.>
//初始化函数:确定串口、波特率
void uart_init(uint_8 uartNo,uint_32 band_rate)
//发送单个字节
uint_8 uart_send1(uint8_uartNo,uint_8 ch)
//发送多个字节
uint_8 uart_sendN(uint_8 uartNo,uint_16 len,uint_8* buff)
SPI 串行外设接口(同步)
SPI 一般使用4根线
- 串行时钟线 SCK
- 主机输入/从机输出数据线 MISO
- 主机输出/从机输入数据线 MOSI
- 从机选择线 S S ‾ \overline{SS} SS(Slave Select).接到主机的
I/O
输出线,低电平选中从机;主机的 S S ‾ \overline{SS} SS则接高电平