各位大虾,我是菜鸟,在看北邮的<<MSP430系列单片机实用C语言程序设计>>时,串口通信有一段程序死活看不懂,想向大家请教一下. BAO.C文件里,对串口接收数据的判断有这样一段程序: /***************************************************************************** 处理Uart数据包 p0: 用来返回发送的数据的字节数 返回值:指向发送缓冲区的指针 ******************************************************************************/ unsigned char* DoUart(unsigned char *p0) { unsigned char q0; unsigned int iq0; //判断接收数据 if(NRxBuff!=0) { if(aRxBuff[0]==HAND_OK&&bWaitRe==1&&bUartRxErr==0) { //发送完数据包,等待PC校验结果 bWaitRe=0; NRxBuff=0; SendByte=0; } else if(aRxBuff[0]==HAND_ERR&&bWaitRe==1&&bUartRxErr==0) { //发送完数据包,等待PC校验结果 SendByte=N_XY_BAO; NRxBuff=0; } 其中if(aRxBuff[0]==HAND_OK&&bWaitRe==1&&bUartRxErr==0)这个判断数据收到的条件怎么理解? 1&&bUartRxErr==0,HAND_OK&&bWaitRe==0这两个条件怎么解释,还有为什么要让接收数组的数组头aRxBuff[0]==0呢?既然接收到数据aRxBuff[0]肯定不为0呀? 请各位大虾帮帮我 相关链接:https://bbs.21ic.com/upfiles/img/200710/20071012170673.rar |