展开全部
上电才能发送是因为开始时软件对通讯口做了初始化,所以可以正常发送,而发送一次后状态就变了。
1、很有可能是在发送最后一个字节时,将数据送入了SBUF后就不再处理了,其实单片机将该字节发送后,会将TI置1,软件必须对TI再做清零操作,才能保证一次通讯发送真正完成,接口恢复到初始状态。采用在中断程序里发送数据的模式尤其容易在这里出错。
2、如果通讯是由PC机触发的,可能还要查一下是否有清零REN的语句,保证空闲时REN出于1的状态。
3、还有就是串口中断控制位是否发生变化,影响了串行中断的产生
其实牵涉到通讯的控制位就是那么几个:RI、TI、REN、ES、PS、EA,有针对性的查一遍就是了。
1、很有可能是在发送最后一个字节时,将数据送入了SBUF后就不再处理了,其实单片机将该字节发送后,会将TI置1,软件必须对TI再做清零操作,才能保证一次通讯发送真正完成,接口恢复到初始状态。采用在中断程序里发送数据的模式尤其容易在这里出错。
2、如果通讯是由PC机触发的,可能还要查一下是否有清零REN的语句,保证空闲时REN出于1的状态。
3、还有就是串口中断控制位是否发生变化,影响了串行中断的产生
其实牵涉到通讯的控制位就是那么几个:RI、TI、REN、ES、PS、EA,有针对性的查一遍就是了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询