一起玩儿物联网人工智能小车(ESP32)——51. Arduino中的UART通信

摘要:本文介绍UART通信协议的基本知识以及在Arduino中如何实现UART通信

下面来看一下,使用UART进行数据通信的时候,除了底层电器特性必须保持一致之外,在通信规则方面,应该确定哪些东西。必须要保持一致的东西包括:

  1. 统一的同步位(一致的开始位和停止位)
  2. 数据位数,是5位、6位、7位还是8位。
  3. 奇偶校验一致,这包括时奇校验、偶校验还是无校验。所谓的奇校验,就是当数据为的1为偶数个时,校验位是“1”,当数据位中“1”的个数为奇数个时,校验位是“0”。简单的说,就是把数据位和校验位中的1凑成奇数个。偶校验就是凑成偶数个“1”。
  4. 波特率(bps)。就是每秒传送数据的位数。由于硬件设备的原因,这个波特率不是任意选择的,通常是在一系列波特率中选择。通常有1200 bps、4800 bps、9600 bps、19200 bps、38400bps、115200 bps等等。最常使用的是9600bps,这是比较低的一个波特率数值,这是由于早期机器主频不高的原因。我们现在开发中串口监视器一般使用的是115200bps,这个是9600的100多倍了。

这个UART通信规则通常会简写为一个字符串:波特率,奇偶校验,数据位,停止位。例如最常见通信规则是:9600,n,8,1,就表示通信波特率是9600,无校验,8位数据位,1位停止位。其中n表示无校验位,o表示奇校验,e表示偶校验。

最后再来看一下UART的优缺点:

优点有:

  1. 全双工只需要2根数据线(电源线除外)。
  2. 不需要时钟信号线。
  3. 在数据帧中定义了奇偶校验,可以排除一些基本的通信错误。

不足之处在于:

  1. 每一个数据帧的数据大小有限,一个数据帧不能包含多个字节的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起玩儿科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值