以串口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效果
}
}
|