当前位置: 代码迷 >> 单片机 >> 累加和校验的有关问题
  详细解决方案

累加和校验的有关问题

热度:94   发布时间:2016-04-28 16:11:12.0
累加和校验的问题
单片机485通信的一个程序,调试程序的时候发现程序老卡在语句 "while(RI0!=1);//主机接收正确,发回F0 "这里不往下运行,发送程序片段如下,请大家帮我看看是什么问题.
      int   sum;
      unsigned   char   i;                                    
            do
              {
                SPICS0=1;                                                                               //485发送使能
                delay(100);
                sum=0;       //清校验和
                for(i=0;i <30;i++)
                  {
                    SBUF0=TxBuffer[i];       //发送一数据
                    sum+=TxBuffer[i];
                    while(TI0!=1);
                    TI0=0;
                  }
                SBUF0=sum/256;                         //发送校验和
                while(TI0!=1);
                TI0=0;
                SBUF0=sum%256;
                while(TI0!=1);
                TI0=0;
                SPICS0=0;                                                 //485接收使能
                delay(100);                                           //延时                
                while(RI0!=1);                                   //主机接收不正确,发回F0。
                RI0=0;
              }
            while(SBUF0!=0xf0);       //主机接收不正确,重新发送


------解决方案--------------------
是不是主机没有给你发数据啊

------解决方案--------------------
没看到你的接收程序呀!
  相关解决方案