问题:51单片机在与电脑软件通讯的过程中,通讯了100多次 多200多次的时候会出现丢数的情况
原帖地址:
https://bbs.eeworld.com.cn/thread-70030-1-5.html
解决办法:实际上数并没有丢 只是可能电路有时候不稳 造成了波特率的波动 导致了同步有点问题
原来的单片机程序:
void main()
{
P1=0xff;
main_init();
init_8253();
serial_init();
while(1)
{
if(state >=3 ) //state代表接收的字节数 问题就出在这个判断上,有时候就会发生
{ state<3的情况,就是我所说的丢数,其实数并有丢
…… 我觉得从理论上讲能通讯一次成功就通讯N次,
因为同一个循环……事实证明我错了……
}
}
}
后来一直想为啥,在网上找了N久,终于发现有个类似的,于是在if之前多加了
for(timeout=0;timeout<800;timeout++); 就好了
把经历写出来,可能问题很简单,我很菜鸟,不过还是希望和大家分享……
[
本帖最后由 aiwenzx 于 2008-12-17 09:46 编辑 ]