累加和校验的问题
单片机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); //主机接收不正确,重新发送
[解决办法]
是不是主机没有给你发数据啊
[解决办法]
没看到你的接收程序呀!