如题,在51单片机通讯过程中,设置波特率为57600,那么,一码元(8bit,即一字节)数据的传输时间是其波特率的倒数,即1/57600 ≈ 18us。
而我的程序设计为串口接收中断模式,即接收到数据就进入中断。然后启动定时器,若定时时间内有数据传入,则重置定时器初始值。否则,定时器时间到,停止数据的接收。定时器用来判断数据是否传输完毕。按理说,定时器设置的时间只要设置为 大于两字节的传输时间(36us)即可。但实际实验中发现,定时时间必须设置为160us以上才能够正常接收数据,这说明,57600波特率的码元传输时间为160us !?
不知以上分析过程是否出错,还是另有其他原因,还望网友们帮忙!
|