第八章异步串口解析.ppt

UART中断方式接收 UnRSR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 UnRBR FIFO 触发点 data 当RX FIFO中数据未达8个字节,且在一断时间内未放入数据,会产生接收器超时中断; 当RX FIFO中寄存器字节数达到 8个时,触发RDA中断。 收到8个字符,到达预设 值,产生RDA中断 产生字符超时中断(CTI) 假设此时UnFCR[7:6]为10,则RX的触发点设置为8个字节 等待3.5-4.5 个字节的时间 可以一次读取多个数据,当对UnRBR执行读 操作,中断标志被清除。 仍然没有接 收到数据 RDA中断服务程序 …… switch U0IIR 0x0f …… case 0x04: /* 发生 RDA 中断 */ for i 0; i 8; i++ /* 连续读取 U0RBR 寄存器 8 次 */ RvBuf[i] U0RBR; /*将接收到的数据保存到接收缓冲区 RcvBuf中 */ …… …… CTI中断服务程序 …… switch U0IIR 0x0f case 0x0c: /* 发生超时中断——CTI */ while U0LSR 0x01 1 /* 如果接收 FIFO 中含有数据, 就读取 UnRBR 寄存器 */ RcvBuf [ i++ ] U0RBR; /*

文档评论(0)

1亿VIP精品文档

相关文档