打印

关于PIC16F883的规格书的问题

[复制链接]
1801|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugangzhu|  楼主 | 2010-11-21 13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
规格书上写到:接收FIFO 缓冲器可以保存2 个字符。但如果在访问
FIFO 之前,接收到完整的第3 个字符,则会产生溢出
错误。此时, RCSTA 寄存器的OERR 位会置1。
按我的理解要是发送一串数据(超过三个),就发生溢出错误了啊????


下面是我的接收部分的程序接收在中断中处理不知道为什么接收有时候会死机
if((RCIF==1)&&(b1.b1_2.b3==0))
{
   bufData1[i]=RCREG;//bufData[5]低位bufData[6]高位,CRC校验存储
   i++;
   if((bufData1[0]==0x0a)&&(b1.b1_2.b1==0))//如果接受主机开始传输命令
   {
    if(i==bufData1[2])
    {i=0;b1.b1_2.b3=1;}
   } //数据接收完置接收完标志
   else
   {b1.b1_2.b3=0;i=0;
   }//如果bufData[0]开始传输命令不为0x0a清接受完主机数据标志,主程序中不再判断
         
}
沙发
yewuyi| | 2010-11-22 09:19 | 只看该作者
这是一个循环性的FIFO。

进去一个读走一个,只要同一时刻没有进入3个数据,则FIFO就不会发生溢出,也就不会导致‘OERR 置1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝