WT:我发现MAIN函数里加上while(1)与不加while(1)对于MAIN函数里是没影响的,但对于中断函数是有影响的。如不加while(1)时,中断函数中红色部分做实验成功运行,而那个加while(1)时,那个中断函数中红色部分做实验不成功(跟不写一样)。
主函数部分如下
void main(void) //加不加循环对串口的影响???????????????????
{
//while(1)
//{
UART_init();
P2 = 0x99;
DELAY_MS(1000);
P2 = ~P2;
DELAY_MS(1000);
//}
}
中断函数部分
void UART_R (void) interrupt 4 using 1{ //切换寄存器组到1
unsigned char UART_data, i; //定义串口接收数据变量
RI = 0;
//令接收中断标志位为0(软件清零)
UART_data = SBUF; //将接收到的数据送入变量 UART_data
for(i;i<10;i++)
{
P2 = UART_data;
DELAY_MS(100);
P2 = ~UART_data;
DELAY_MS(100);
}
//用户函数内容(用户可使用UART_data做数据处理)
SBUF = ~UART_data; //将接收的数据发送回去(删除//即生效)
while(TI == 0); //检查发送中断标志位
TI = 0; //令发送中断标志位为0(软件清零)
}