C51如何接收和发送 串口工具 16位数据

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-28
51单片机怎么接收电脑发送的16位数据?

51单片机是8位的,一次只能接一个字节,你这16位的,要分两次的。

电脑串口也是按两次来发送,也就是把这个16位的拆成两个字节,所以每个字节发送都是遵循串口协议的,你在单片机里面开串口接收中断即可。

你可能会疑问,要是第一个字节中断了,进入中断函数接第一个字节后,那第二个字节会不会错过,来不及接收?

这个不会的,上面说了,第二个字节也是按串口标准发的,也就是起始位,数据位,(校验位),结束位。

电脑在发一个字节后,又会接着发第二个字节。可是,要知道串口的波特率是很低的,远远比单片机的处理速度低。当你接了第一个字节,将此字节做一些处理,比如存起来时,电脑可能都还没开始发第二个字节呢,因为电脑发数据的速率是以K为单位的,而单片机处理速度是以M为单位的。

因此,不用担心第二个字节会丢失。

232串口是以字节为单位进行数据传输的,这样就是两个字节啊。

51单片机一次只能接收1个字节数据(8位),若要接收两个字节,串口工具应该分成两字节发送。比如先发送高字节,再发送低字节。对于 100H,按十六进制发送 01 00,单片机收到第一字节数据保存起来,收到第二字节后将两个8位数合并成16位数。

51单次只能发送一个字节,8位,对于大于一个字节的数据,都是作为数据流处理,由单片机和上位机根据事先约定的通讯协议进行解析。
16位数据就是2个字节,发两次即可,至于高字节在前还是低字节在前,根据双方约定就可以了。