UART通信和相应数据的显示
通过UART (Universal Asynchronous Receiver/Transmitter)可实现串行通信中的异步数据传输,它是一个全双工异步收发器,采用RS232通信协议,可通过两根电缆同时接收和发送数据。PSoC中的UART用户模块是PSoC数字模块,该模块接收和发送的字符为一个数据,数据包括4部分:起始位、数据位、奇偶校验位、停止位。另外,UART数据模块也支持可编程时钟、发送和接收中断以及轮询操作。UART数字模块也可提供应用程序接口(API)程序,以给编程带来方便。它可由一个串行接收器和一个串行发送器组成,分别为RX UART和TX UART。
(1)通用异步接收器RX-UART
异步接收器需要有关通信类型的数字PSoC模块,它有自己的RX缓冲区寄存器、RX移位寄存器以及RX控制寄存器。可以使用UART用户模块固件中的API程序来对RX控制寄存器进行初始化和配置。本装置的RX初始化包括UART无奇偶校验、满足RX寄存器条件的中断使能。
当检测到RX输入起始位到来时,RX模块中的除8时钟开始启动,然后开始对输人的数据位进行异步接收。而在下一个8位时钟的上升沿到来时,输入的数据将被接收并送到RX移位寄存器中。当在下一个时钟的上升沿接收到停止位以后,RX控制寄存器中的RX寄存器满的这一位被置位,同时接受中断使能,并在中断中记录异步通信所接收到的值,然后在LCD中显示。
(2)通用异步发送器TX-UART
异步发送器也需要一个通信类型的数字PSoC模块。它有自己的TX缓冲区寄存器、TX移位寄存器以及TX控制寄存器。可以使用UART用户模块固件API程序来对TX控制寄存器进行初始化和配置。本装置的TX初始化包括UART无奇偶校验、RX寄存器不产生中断(轮询操作发送数据)。
当TX控制寄存器的使能位被置位时,TX模块中的除8时钟开始启动,此时在键盘中将会得到一个数据。把此数据送往LCD显示,再把此数据字节通过API函数写入到TX缓冲区寄存器中,然后清除TX控制寄存器的TX缓冲区空状态位,再在下一个时钟的上升沿到来时将缓冲区的数据发送到移位寄存器,然后将TX控制寄存器的TXBuffer Empty状态位置位,即可完成数据发送。 |