uart协议_实战microPython(09) 串口UART的使用(上)

今天课程内容:UART串口的相关知识,UART的编程及应用。

串行通讯是控制器对外交流的三大手段之一,另外两种分别是GPIO和并行通讯。以后如果有机会,我会单独讲述通讯的相关知识。串行通讯的特点是使用少量的引脚,将数据按照约定的方式顺序的输出或输入。这里的约定称为协议。因此,要想和微控制器成功对话,协议是必不可少的部分。串行通讯的协议有很多,常见的USB,以太网等都是不同的串行通讯协议。而这些协议往往很复杂,需要专门的硬件和软件来进行解析,并将数据转换为微控制器能够处理的形式。

c6cbee4bc501f2a1196a714ad97e0b9e.png

由于芯片资源有限,一款微处理器不可能支持所有的串行通讯协议,但一般会支持最基础最简单的三种串行通讯协议:UART, SPI, I2C。这三种串口也是最常见的通讯接口。今天,我们就解说一下UART的编程及使用。

UART-通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),其实我们早已和它打交道多次了。还记得microPython板在通过USB连接电脑时除了找到一个Flash盘,还会找到一个用于连接控制台软件的串口设备吗?

a23fb12f796a06a2650d52e82b450130.png

这个口就是UART串口了,但需要说明的是,这个口并没有占用微控制器自带的UART资源,而是使用了USB接口通过软件模拟成UART口,因此,占用了USB接口资源。由于现在的计算机设备工作速度越来越高,因此,计算机已经逐渐淘汰了低速的UART通讯端口,很多电脑主机已经不带有UART串口了,而被速度更高的USB接口逐渐取代了。但由于UART协议简单占用资源较少,因此,在微型处理器中仍然广泛使用。微处理器中的UART接口可用于微处理器之间的数据交换,也可以用在微处理器和外部设备,模块等硬件之间的数据交换,当然,微处理器也可以和计算机之间进行数据交换,而且这还是非常必要的调试程序的手段,如同我们正在使用的microPython的控制台软件,通过该软件,我们可以直接输入程序指令,得到运行结果:

3fa263c0a09419b28a8f085b68fbf123.png

UART通讯时,需要两根信号线,分别是输出数据信号线和输入数据信号线,这两个信号线在两个通讯设备间需要交叉连接。

c977093e4f9dbfb4b70b7441abfa1b7f.png

这样,两个设备才能相互交换数据。也正因为如此,UART串口又是一种从A点到B点的点对点连接协议。这个协议是不支持多方通讯的。另外,用于需要将两方设备连接到一起,因此,需要保证信号的电压大家是相同的,因此,双方都要认同同一个0V电压。因此,除信号线外,还需要将两台设备的地信号(GND)连接到一起。因此,通常要连接3根线:

fe2a7fc05e8dbb7d2bb7a0260e7cf9ef.png

前面已经讲到,我们平时用控制台软件连接的实际上是微处理器USB口模拟的串口,而本次要学习的是微处理器上真正的UART串口编程。那么,PyBoard板上UART接口在哪里呢?如下图:

1923015a1526c4b4c9da6b664e7b21e7.png

图中红圈部分,可以看到PyBoard板上的UART资源非常丰富,竟然有5个。对于每个UART设备接口,都可以使用。今天。我们以UART1为例,将UART1连接到电脑上,演示PyBoard和计算机之间的数据通讯。

(未完待续)

祝各位玩得愉快。请继续关注:创客DIY乐园(MakerDIY-Park),您的关注就是我前进的动力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值