1、定时器3中断与串口0中断冲突
开启了串口0中断,同时开启了定时器3中断,串口0中断处理函数如下:
void SerialPort0_ISR(void) interrupt 4
{
if (RI==1) //这个中断时接收跟发送共用的
{
UART_RxData(&UART_DevRx);
clr_RI;
}
}
以上中断处理函数中未清除发送完成产生的中断,如果在产生发送完成中断之后,使用定时器3中断。
定时器3中断将不能响应。
2、串口0连续接收失败
使用官方的DEMO:UART0_mode_3
发现电脑串口连续发送10个字节数据,产生接收数据丢失的现象。
但是间隔一定时间发送1个字节数据,发送一个10字节数据,没有数据丢失。
3、P1.2复位引脚设置为输入
如下图设置
4、外部中断与引脚中断的使用
先看官方例程的代码:
Enable_INT_Port2;
Enable_BIT0_LowLevel_Trig;
P30 =1;
P05 = 0;
set_EPI; //开启引脚中断
set_EX0;
set_EA; //global enable bit
在这里,如果只使用外部中断,不使用引脚中断,那么就不能开启引脚中断。否则会导致单片机卡死