|
单片机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; //发送一数据
sum+=TxBuffer;
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); //主机接收不正确,重新发送
|
|