各位大大,我碰到一个通信协议(串口),要将接收的数据用数码管(布尔形式)显示。下位机是以十六进制的形式发送的。数据的格式如下:
起始字节+称重数据+小数位数字节+标志字节+校验字节+结束字节
其中:a)起始字节固定为:02H。 b)称重数据为:6位ASCII码,占6字节,高位在前。 c)小数位数字节为:1100 0XXX(二进制数)。其中XXX表示小数位数。 d)标志字节为:11 X5X4 X3X2X1X0(二进制数)。其中X5X4 X3X2X1X0为状态标志,若标志为1,则对应的状态指示灯亮。反之,若为0,则对应的状态指示灯灭。 标志位所对应的状态指示灯如下表所示。 e)校验字节为:1字节起始字节、6字节称重数据、小数位数字节及标志字节的二进制累加和;若累加和为02或03,则加2后作为校验字节。 f)结束字节固定为:03H。 下面有个例子:
称重值为54.321Kg且称重稳定,则秤向PC机发送数据(十六进制)及次序为: 秤→PC机:02 30 35 34 33 32 31 C3 C2 B6 03 它好像是将十六进制转换为字符串的。但是我找不到这个函数。 求 如何将十六制数分割 将他转换为字符串。例如:30 35 34 33 32 31 转换为字符串 054321 C3转换为3(表示3位小数)。
|