PICmcu串口接收溢出处理(有代码)

[复制链接]
3080|0
 楼主| benjamin_2010 发表于 2010-4-14 21:11 | 显示全部楼层 |阅读模式
上位机给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);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

46

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部