以串口2為例, 如下修改, 串口3同理修改. (當然, 建議是置標志位, 主程序中發送, 而不要在中斷中發送,你非要中斷中發送,就做如下修改)
//void ISP_Check1(unsigned char i) //串口2發送數據調用函數
//{
// S2BUF=i;
// while(S2CON&S2TI==0); // 等特數據傳送 (S2TI發送中斷標志)
// S2CON&=~S2TI; //清標志位
//}
void Uart2() interrupt 8 using 1 //串口2中斷
{
if(S2CON&S2TI) S2CON&=~S2TI;
if(S2CON&S2RI) //如果收到數據 S2RI置位
{
a = S2BUF;
S2CON&=~S2RI; //清標志位
S2BUF = a;
// ISP_Check1(a); //翻轉LED效果
}
}
|