这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » UART串口通信问题

共3条 1/1 1 跳转至

UART串口通信问题

菜鸟
2008-07-31 09:58:17     打赏
UART串口通信,我用中断读取的方式一串连续的数据,系统RESET后这串数据能收到,但是第二串时,U0RBH 为0x90,提示产生上溢错误。请问,这个错误是怎么产生的,(这个错误是不是,U0RB寄存器有数据但没有读取,第二个数据又接收完成了,而产生的),应该怎么样去避免,有错误后只能清除错误标志才能正常读取数据吗?



关键词: 串口     通信     问题    

菜鸟
2008-07-31 13:42:17     打赏
2楼

谢谢回复!
我有程序也是按你上面写的,
void INT_Receive_UART0(void)
{
  unsigned short tempdata;

  tempdata = u0rb;
  if (sum_u0rb==0)   
     {
  Rece_UART0[Rece_Count] = tempdata;
  if (Rece_UART0[Rece_Count]==BT_LF)  //end flag
     {
      if (Rece_Count > 2){
    Rece_Count = 0;
    return;
   }
  } 
  Rece_Count++;
     if (Rece_Count > BT_RECV_MAXLENGTH){
        Rece_Count = 0; 
  }           
   }else{  //clear flag
        Rece_Count = 0;       
     re_u0c1=0;
     _Wait4NOP;
     re_u0c1=1;
   }         
}
上面的错误处理,要re_u0c1=0,才能清除,这样操作对串口接收有没有影响。
一般是怎么清除错误标志的


菜鸟
2008-07-31 15:12:13     打赏
3楼
非常感谢你详细的分细,我的见意很好。
上面说的溢出错误应该是在其它的中断处里时,而产生的。

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]