UART协议及实现

目录

1. 通信原理

2. UART通信原理

3. UART硬件原理及收发流程

4. HAL库操作UART流程

5. 串口printf重定向

6. 如何解决UART接收数据丟数的问题


1. 通信原理

1)串行/并行

2) 全双工/半双工/单工

全双工:同一时刻双方可以互相发送数据、接收数据,如手机。

半双工:同一时刻只有一方可给另一方发送数据,此发彼收,此收彼发,如对讲机。

单工:只能由发送方将数据发给接收方,如收音机。

3)同步/异步(针对串行通信而言)

同步:收发端同时钟。

异步:收发双方时钟各自独立,接收端依靠字符帧格式判断发送端的数据何时开始何时结束。

4) 通信速率

同步通信下,通信速率由时钟信号决定,时钟信号越快,传输速度越快。

异步通信下,收发双方提前统一通信速率,如串口调试时波特率不匹配会显示乱码。

比特率:系统在单位时间内传输的二进制0/1个数,缩写bps,bit/s。

波特率:系统在单位时间内传输的码元个数,RB表示,当码元有N个状态时,比特率和波特率的关系为Rb=RB×log2N,串口通信下有高电平两种状态,即N=2,故比特率即为波特率。

2. UART通信原理

        UART(Universal asynchronous receivers-transmitter,通用异步收发器)数据帧结构如图Fig.3所示,假设串口波特率为115200bps,则一个1bit传输需要1/115200s,假如uart数据线时钟频率为36M,则需要36M/115200个时钟周期。

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值