讲完了I2C接口,我们下面来看一下UART通信相关的配置。UART接口是GPIO复用功能中最常用的一种硬件通信方式。如果只是单线通信的话,只需要一根数据线就够了,所以我们经常使用uart接口输出程序中的变量,进行调试。 在这块开发板中,对uart接口进行初始化的函数如下图所示。对UART接口配置,一个非常关键的参数就是波特率的配置。下图中,绿色部分一大块内容都是对波特率配置的程序段,可见其相对来说比较复杂,我们不需要去关注这些实现的细节,实际使用的时候拿过来用就好了。 下面,我们对相关的寄存器进行简要的介绍。
LCR:Line Control Register是线控制寄存器,所谓线控制器,主要是用于配置和传输相关的一些参数。比如,第4位是用来做奇偶校验配置的,第0-1位是用来控制一次传送多少个bits的。
IER: Interrupt Enable Register,这个是中断控制器主要控制和UART相关的中断操作的,是不是允许相应的中断。
FCR:是用来控制FIFO 相关的参数的。我们这里不使用FIFO,所以要把它禁止掉。和FIFO相关的参数,这里就不给大家展示了。
MCR,全称是 Modem Control Register,也就是和调制解调相关的寄存器。我们这里配置的两个位一个是RTS(Request to Send),一个是DTR(Data Terminal Ready)。这两个位,我们在实际使用串口的时候也会经常用到,但是实际一般不配置相应的握手协议。
配置好寄存器之后,就要开始发送数据了。数据的发送,主要是THR这个寄存器。THR的全称是Transmit Holding Register。实际发送数据的时候,只需要往这个寄存器里面写入数据就可以了。写入数据之后,UART相关的威廉希尔官方网站
,自动发送数据给接收端。 篇幅长,完整内容见附件: