下面這個是協議,
協議是小端模式,一共有8個字節:
然后校驗和計算的是前7個字節的數據.
數據0,數據1: 兩個共同組成16位的有符號型數據.
數據2,數據3:兩個共同組成16位的有符號型數據.
且都是小端模式,如果你用的單片機是stm32,那單片機的架構也是小端模式,就可以直接讀取和寫入.
下面是采集的一些數據:
如何從這些十六進制的數據中得到相應的十進制數據.
比如:上面圖片中的一條數據: DD CC 02 2E 02 20 02 FD 這里是一組數據,
然后 2E 02是兩個十六進制數據,它代表的是558
計算方法是:
上面的代碼是這樣的:因為讀出來的十六進制是 0x2e, 0x02
又因為協議是小端,所以, 0x02是高8位; 0x2e是低8位;
然后上面程序中 %hd 輸出的是 short 格式的.
關於校驗和:
某個位置: DD CC 05 1E F8 4F FD 10
某個速度: DD CC 03 95 00 00 00 41
用上面的程序 把 0x1e 0xf8 帶進去是:-2018
把0x95 0x00帶進去是得到:-107
關於校驗和,需要DD CC 05 1E F8 4F FD進行校驗和,最后應該得到的是0x10
校驗和采用的是CheckSum方法.
比如:
下面還有一個問題,如何把十進制,轉換成16進制的指令:
short rate=10;
str[3]=(char)(rate&0xff);
str[4]=(char)((rate>>8)&0xff)