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