具体操作:
电脑断电后,重新上电启动,通过comtools发数据,发送完毕后,电脑收不到任何反馈数据,这时只要电脑使用comtools再随意发送个数据,就能接收了。当我换成USB转串口时,反而没有这个问题。请教大家,这是为什么啊???
我电路接线肯定没有问题,因为只有第一次通讯异常,之后都正常。
没有其它的回答了吗?
可能是你的单片机程序编写得不够合理,没有做足够的出错处理,或者做得不正确.追问
我的描述中有几个关键点没有说清:
1、我使用的89S52单片机;
2、单片机板和程序是我自己设计的,TXD,RXD连线正确,因为从第二次开始就可以正常通讯了,只是第一次不成功;
3、这个不成功产生的原因是在计算机断电后,重新上电启动引起的,如果只是重启计算机,而不断电,这个问题就不存在;
按照你的回答,计算机上电时,就会向单片机发送乱码,是吗?还有其他的原因吗?
我觉得主要应该就是这个原因,没看到你的东西,很难确切地判断出你的原因.
跟你一样的芯片,protues仿真出来跟你一样的问题,最后赋初值解决
发送端部分程序:
Start:
mov SCON,#50H;
anl PCON,#00H;
mov TMOD,#20H;
mov TL1,#0fdH;
mov TH1,#0fdH;
setb TR1;
setb EA;
setb ES;
mov P2,#00H; //不加这句第一次不执行
loop1:
mov A, P1;
cjne A,P2,chuli;
sjmp loop1;
chuli:
mov P2,A;
mov SBUF,A;
jnb TI,$;
cpl TI;
ret;
;====================================================================
END