void RI_Interrupt() interrupt 4 using 1 { if(RI) { c=SBUF; RI=0; StartFlag=1; OverTimeCount=0; if(ReceiveCharcount<MAX_BUFF_SIZE)//MAX_BUFF_SIZE为缓冲区的大小 { ReceiveCharcount++; //串口缓存区里的字符数 *pBufferIn=c; //指向缓冲区的指针 pBufferIn++; if(pBufferIn==&CommBuffer[MAX_BUFF_SIZE]) { pBufferIn=&CommBuffer[0];} //环形缓冲区 } } } 为什么每到缓冲区从尾到头的过渡中 要丢一个字节,怎么优化一下? |