单片机—UART接口知识简介(下)

来源:互联网 发布:单片机舵机控制原理 编辑:程序博客网 时间:2024/04/29 11:49
3  工作机制

 

UART模块成功地接收到一个字节的数据后,会把接收到的数据载人接收缓冲寄存器(P_UART_Data),如果此时在P_UART_Status中的RXIE位为1,则会自动将RXIF标志位置1;之后读取P_UART_Data会自动将RXIF标志位清零。

 

P_UART_Status中的TXIE位为1时,若TXIF位置1则表示UART模块完成数据发送并准备好进行下一次发送,如果状态寄存器中“1标志位为0(总中断打开)则会发生一次UART发送中断。写数据到P_UART_Data寄存器会自动将TXIF位清零。BUSY为只读的标志位,当其置1时代表UART模块正在忙,当传输完成BUSY标志位会自动清零;P_UART_Status中的其他标志位还有OERRPERRFERR,都为帧错误信息标志,向对应的寄存器位写入“1可清除OERR(溢出错误标志)PERR(奇偶校验错误标志)FERR(帧错误标志)

 

在软件向P_UART_Data寄存器写入数据后,UART开始发送。UARTTX引脚上发送数据按照以下顺序:起始位、8位数据(低位在前)、奇偶校验位(奇偶校验使能的情况下有效)、停止位。发送停止位后再经过两个CPU时钟周期,寄存器P_UARTl_Status中的TXIF位被置1

 

P_UART_Ctrl寄存器中的RXEN位使能接收功能后,如果RX引脚接收到一个开始位的下降沿,标志着接收数据开始。在停止位时间周期内,串口检查以下条件:如果满足RXIF=0RXIE=1的条件,寄存器串口向P_UART_Data写入接收字节并置RXIF位为1;如果不满足,则丢失接收数据,不会载人到寄存器P_UART_Data中。在停止位时间过了一半之后,串口开始等待RX引脚上的下一个开始位下降沿。

 

    UART有关的两个中断:发送中断和接收中断。发送中断信号实际上是“发送数据准备好”标志触发的。

产生UART中断需要以下步骤。

 

(1)用“SEI”指令关闭总的中断开关。

 

(2)设置UART相关寄存器。

 

(3)P_UART_Ctrl($46)寄存器使能发送/接收中断。

 

(4)用“CLI”指令打开总的中断开关。

 

(5)等待中断产生。


原创粉丝点击