我有一个通过串口连接到我的电脑上的设备,我正在试图弄清楚它是如何发送数据的。(长话短说)我有一个应用程序,可以指示它通过串行方式向我发送文本,我正在试图弄清楚设备是如何格式化数据的。到目前为止,我已经找到了一个例子:
如果我发送:“回文”,我会看到:
A1 87 66 9D D9 39 6F DB 97 98 00 “回文”的ASCII数据是
P a l i n d r o m e s
50 61 6C 69 6E 64 72 6F 6D 65 73如果我按流中(+1)的位置移动每个字节,就会得到
P a l i n d r o m e s
50 61 6C 69 6E 64 72 6F 6D 65 73 <-- ASCII
01 02 03 04 05 06 07 08 09 0A 0B <-- shift
--------------------------------
03 98 00 <-- 73 << 0B = 039800
01 94 00 <-- 65 << 0A = 019400
DA 00 <-- 6D << 09 = DA00
6F 00 <-- 6F << 08 = 6F00
39 00 <-- 72 << 07 = 3900
19 00 <-- 64 << 06 = 1900
0D C0 <-- 6E << 05 = 0DC0
06 90 <-- 69 << 04 = 0690
03 60 <-- 6C << 03 = 0360
01 84 <-- 61 << 02 = 0184
A0 <-- 50 << 01 = A0
--------------------------------
A1 87 66 9D D9 39 6F DB 97 98 00我试验了不同大小的字符串,算法也符合要求。
,是否有某种协议可以做到这一点?如果是,哪些是?
感谢任何方向
发布于 2015-03-09 20:30:46
它看起来是每字节发送7位,你被设置为接收8。检查你的串口设置。
发布于 2015-03-09 21:09:43
流中的数据被位打包,这意味着每个字节的MSBit被删除.
https://stackoverflow.com/questions/28951063
复制相似问题