Android中串口的开发

34 阅读1分钟

基础答疑

问:为什么代码中操作数据帧时用十六进制

0xff

答:因为直观。在发送数据的时候,帧数据都会转化成二进制流发送给硬件设备。

一:符合硬件通讯的本质需求:

每个字节(1 byte=8 bit)用十六进制表示最直观 ->

  • 一个字节byte,正好对应,两个十六进制字符,(如,0xff)

  • 便于直接查看和调试二进制出数据流。

二:协议规范一致性

  • 大多数硬件设备的通讯协议都是采用十六进制定义,
  • 帧头帧尾通常是固定十六进制值,
  • 命令码、寄存器地址等参数常以十六进制表示,
  • 校验和计算CRC、LRC等,基于十六进制字节;

问:数据帧里只有十六进制数字吗

F3132333435363738393

数据帧里都是ASCII里的数字编码,每个编码都对应一个字符。

所以,传输的可不只有数字,还有更有意义的数据内容。

ASCII字符是什么

本质上就是一个数字到字符的映射表。

串口传输的数据帧的数据,就是用到映射表的一个个数字编号。