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

来源:百度文库 编辑:神马文学网 时间:2024/05/01 03:43:51
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中的其他标志位还有OERR、PERR和FERR,都为帧错误信息标志,向对应的寄存器位写入“1”可清除OERR(溢出错误标志)、PERR(奇偶校验错误标志)与FERR(帧错误标志)。 在软件向P_UART_Data寄存器写入数据后,UART开始发送。UART在TX引脚上发送数据按照以下顺序:起始位、8位数据(低位在前)、奇偶校验位(奇偶校验使能的情况下有效)、停止位。发送停止位后再经过两个CPU时钟周期,寄存器P_UARTl_Status中的TXIF位被置1。 当P_UART_Ctrl寄存器中的RXEN位使能接收功能后,如果RX引脚接收到一个开始位的下降沿,标志着接收数据开始。在停止位时间周期内,串口检查以下条件:如果满足RXIF=0且RXIE=1的条件,寄存器串口向P_UART_Data写入接收字节并置RXIF位为1;如果不满足,则丢失接收数据,不会载人到寄存器P_UART_Data中。在停止位时间过了一半之后,串口开始等待RX引脚上的下一个开始位下降沿。     与UART有关的两个中断:发送中断和接收中断。发送中断信号实际上是“发送数据准备好”标志触发的。产生UART中断需要以下步骤。 (1)用“SEI”指令关闭总的中断开关。 (2)设置UART相关寄存器。 (3)在P_UART_Ctrl($46)寄存器使能发送/接收中断。 (4)用“CLI”指令打开总的中断开关。 (5)等待中断产生。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nolatin/archive/2008/10/21/3119844.aspx