void serial_int() interrupt 4 using 2 // 串口中断,使用工作组2 { if(TI == 1) // 发送中断 { TI = 0; // 清发送标志位 if(count_s < __MAX_LEN_) // 数据未发送完毕 { SBUF = send_buf[count_s]; // 发送数据 count_s++; // 发送计数增1 } }
if(RI == 1) // 接受中断 { if(count_r > __MAX_LEN_) // 接收缓冲区已满,忽略已接收数据 { RI = 0; return; } recv_buf[count_r] = SBUF; // 接受数据 count_r++; // 接收计数增1 RI = 0; // 清接收标志位 } }
|