程序采用了查询式发送,for(i=0;i<6;i++) {SendChar(askconfig[i]); },共发送了6个字符。
再去查询收到否。
这种方法,就是有问题的,发送6个字符时,就可能收到了好几个字符,而没有及时保存,完全可能丢失信息。
应该采用中断方式接收;发送,也可以用查询,也可以用中断。
方法弄清楚了,程序就容易编写、调试了。
char Handshake (void)里面:
for(i=0;i<6;i++)
{
SendChar(askconfig[i]);
}
while(RI)
这里不能这么用,否则发送发完了,还没收到(此时RI=0)就返回主程序发送1,2,3了。这里要加一句while(!RI);
改为:for(i=0;i<6;i++)
{
SendChar(askconfig[i]);
}
while(!RI);
while(RI)
{............