ABOV(13) UART

USIO UART 接收标志位和中断

UART接收器有一个标志位用来表明接收器状态。
接收完成(RXC0)标志位表示在接收缓存器中是否有未读取的数据。当在接收缓存器有未读取的数据值位,当接收缓冲器清空时该位置零。如果接收器禁止(RXE0=0),接收缓存器被清空并且RXC0清零。

当USI0CR2寄存器中的接收完成中断使能位(RXCIE0)值位同时总中断打开,RXC0标志位值位时UART接收完成中断产生中断。

UART接收器有三个错误标志位,分别是帧错误(FR0),数据超出(DOR0)和奇偶校验错误(PE0)。这些错误标志位可以通过USI0ST1寄存器读取。接收数据存储在2级接收暂存器,这些标志位也存储在接收缓冲区相同的位置。所以,在从USI0DR寄存器读取接受数据前,先读取包含错误标志位的USI0ST1寄存器。

帧格式错误(FE0)标志位表示第一个停止位的状态。当停止位正确的监测到‘1’时,PF0是‘0’.当停止位错误,也就是检测到0时,FE是‘1’.该位可以用检测帧与帧之间的数据失去同步。

数据超出(DOR0)标志位表明由于接收缓冲区装满而引起的数据丢失。当接收缓存器装满,同时另一个已经存储到接收缓存器的新数据又存在于接收移位寄存器时,DOR0产生。当DOR0标志位值位后,所有进来的数据都会丢失。避免数据丢失或清除该位,读取接收缓存器。

奇偶校验错误(PE0)标志位表明在接收暂存区接收的数据中已经有一个校验错误。如果奇偶检验检测功能没有使能(USI0PM1=0),PE0位通常是读‘0’.

USI0 UART 奇偶校验

如果奇偶校验位使能(USI0PM1=1),奇偶校验检查器计算进来的数据的奇偶和接收到串口帧数据进行比较。

USI0 UART 禁止接收

与发送形成对比,通过清零RXE0位来禁止接收器使接收器立即执行。当接收器禁止时,接收器清空缓冲区,在缓冲区中剩下的数据全部复位,同时RXD0引脚可以作为普通I/O口(GPIO)。

发布了47 篇原创文章 · 获赞 0 · 访问量 1705

猜你喜欢

转载自blog.csdn.net/New_Joker/article/details/103931967