zhuruoxuan@qq

    1. else { UARTDataBuf[RCounter++]=U0DBUF; if(RCounter==UARTDataBuf[1]+2) //第二个字节为总个数,7E,01,00 { UartRNum = RCounter; ReceiveOverFlag=1; RCounter=0; PreFlag=0; } 和 else         {          RDataBuf[RCounter++]=U0DBUF;          if(RCounter==UART_RECEIVE_MAXNUM)  //接收字节达到6个            {             PreFlag=0;             RCounter=0;             BYTE Sum=0x00;             for(i=0;i!=UART_RECEIVE_MAXNUM-1;i++)                Sum +=RDataBuf;                if(Sum == RDataBuf[UART_RECEIVE_MAXNUM - 1])                  {                    switch(RDataBuf[1])                         {                           case 0x01:                               ReceiveOverFlag=TRUE;                               break;                           case 0x02:                               break;                            default:                               break;                          }//switch over                   }                   else  //若接收不正确,则要求重新发送                   {                     //ReCallPC();   //重新发送请求                   } 他们俩区别是什么呀?
    2. 都有吧~~~而且RCounter也没有找到它的初始值是多少?有些注释更是让人一头雾水~~~比如: 头文件中          //定义帧长度         #define UART_RECEIVE_MAXNUM       10 而串口程序中 if(RCounter==UART_RECEIVE_MAXNUM)  //接收字节达到6个 6怎么来的呀?
    3. l楼主,求帮忙啊~~~ //#pragma vector = URX0_VECTOR __interrupt void URX0_ISR(void) {   //接收数据   //BYTE i=0;   if(PreFlag == 0)   {     if(U0DBUF==0x7E) //如果接收到前导字符,则改变标志     {       PreFlag=1;       UARTDataBuf[RCounter++]=U0DBUF;     }   }   else   {     UARTDataBuf[RCounter++]=U0DBUF;     if(RCounter==UARTDataBuf[1]+2)  //第二个字节为总个数,7E,01,00     {       UartRNum = RCounter;       ReceiveOverFlag=1;       RCounter=0;       PreFlag=0;     }   } } 真心看不懂啊~~~~~

最近访客

< 1/1 >

统计信息

已有22人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:3

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言