用vb编写上位机软件与下位机单片机串口多机通讯。单片机的P0口接8个继电器,P1;P2口是按键输入口,上位机要实时显示下位机的P0;P1;P2口状态,并且上位机还要控制下位机的P0口的8个继电器。我的想法是这样的:上位机vb中用一个定时器,每隔一段时间就发送一次数据给下位机,数据格式是:01010000 00000001 00000000 共3个字节,第一个字节的高4位为通讯开始的标识,低四位用于奇偶校验(不知道这样做奇偶校验行不),第二字节为命令位,单片机通过此数据位来执行不同的过程,第三字节为数据位,就是单片机要执行的数据。第四字节为地址位,就是下位机的地址。单片机接收完这3个字节程序后先检测第一字节的高4位是否满足通讯开始标识,满足就继续下一步,然后对数据进行奇偶校验与第一字节的第四位奇偶校验位比较,如果数据正确继续下一步,比较地址位,如果地址是本机地址继续下一步,分析命令位,根据命令来执行数据或上传P0'P1'P2口状态给上位机。上位机vb接收到下位机的数据后进行校验和显示处理。我的这种构思想法是否可行?还有我的奇偶校验方法是否可行?我没有用到TB8 RB8,而是把奇偶校验当做一个字节数据发给单片机的,不是通过TB8 RB8来发送奇偶校验的。
01010000 00000001 00000000 00000000共四个字节。不是三个字节