通讯协议笔记

本文介绍了串行通信的基础知识,包括UART(通用异步收发器)的工作原理、所需的三条线路(发送线、接收线和地线)、数据传输方式、异步和同步通信的区别。还讲解了波特率的概念,奇偶效验的作用,以及TTL电平标准。此外,提到了UART的寄存器结构和初始化函数,并对比了UART与SPI接口的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础知识

  1. 串行通信又称为通用异步收发器(Universal Asyn-chronous Receiver-Transmitters,UART) 或者 串行通信接口(Serial Communication Interface,SCI)
  2. 一般需要三根线:
  1. 发送线(TxD)
  2. 接收线(RxD)
  3. 地线(GND)
  1. 数据以字节为单位发送,按位的顺序从一条线发送
  2. 串行通信分为:
  1. 异步通信:在一个字节数据发送完成后,发送停止位***,若继续发送下一个字节则需要重新发送开始位*
  2. 同步通信
波特率

位长: 位的持续时间,倒数为单位时间内传送的位数
波特率: 每秒钟内传送的位数

奇偶效验
1. 奇校验检查

字符数据中1的数目为偶数,检验位为1,否则为检验位为0

例如:字符数据1010010中,使用奇检验,则检验位为0;偶检验则为1

TTL电平(Transistor Transistor Logic)

10 的特征电压分别为 2.4V0.4V (在3V供电的MCU,特征值有变动)

UART 的寄存器

  1. 波特率寄存器:设置波特率
  2. 控制寄存器:设置通信格式、是否校验,可能存在多个
  3. 状态寄存器:是否有数据可收、数据是否发送出去,可存在多个
  4. 数据寄存器:存放发送和接收的数据,只有一个
    .>
//初始化函数:确定串口、波特率
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根线
  1. 串行时钟线 SCK
  2. 主机输入/从机输出数据线 MISO
  3. 主机输出/从机输入数据线 MOSI
  4. 从机选择线 S S ‾ \overline{SS} SS(Slave Select).接到主机的I/O输出线,低电平选中从机;主机的 S S ‾ \overline{SS} SS则接高电平
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值