基础答疑
问:为什么代码中操作数据帧时用十六进制
0xff
答:因为直观。在发送数据的时候,帧数据都会转化成二进制流发送给硬件设备。
一:符合硬件通讯的本质需求:
每个字节(1 byte=8 bit)用十六进制表示最直观 ->
-
一个字节byte,正好对应,两个十六进制字符,(如,0xff)
-
便于直接查看和调试二进制出数据流。
二:协议规范一致性
- 大多数硬件设备的通讯协议都是采用十六进制定义,
- 帧头帧尾通常是固定十六进制值,
- 命令码、寄存器地址等参数常以十六进制表示,
- 校验和计算CRC、LRC等,基于十六进制字节;
问:数据帧里只有十六进制数字吗
F3132333435363738393
数据帧里都是ASCII里的数字编码,每个编码都对应一个字符。
所以,传输的可不只有数字,还有更有意义的数据内容。
ASCII字符是什么
本质上就是一个数字到字符的映射表。
串口传输的数据帧的数据,就是用到映射表的一个个数字编号。