规格书上写到:接收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清接受完主机数据标志,主程序中不再判断
} |