上位机给pic18的串口连续发送长度为6个字节的数据帧,如果频繁发送,串口将死掉,由于打开了看门狗,单片机将自动复位。
给串口接受做了如下的容差处理但效果不理想。请问这应该用什么策略来处理接受溢出呢?
下面是串口接收单个字节的代码
每出现一次中断,单片机在中断中接收6个连缀的字节组成一帧数据1
unsigned char uart2_getchar(void)
{
unsigned char u2gchar,u2gchara;
while(1)
{
if(RC2IF==1) break;
}
u2gchar=RCREG2;
if((OERR2==1)||(FERR2))
{
CREN2=0;
asm("nop");
CREN2=1;
}
if((OERR2==1)||(FERR2))
{
u2gchara=RCREG2;
u2gchara=RCREG2;
if(FERR2 == 1)
{
SPEN2 = 0;
asm("nop");
SPEN2 = 1;
}
}
return (u2gchar);
}
|