因為串接藍芽裝置,想要從藍芽裝置獲得資訊或是傳送指令到藍芽裝置,需要瞭解其溝通協定,才能順利互通有無。
因為資料長度的關係,需要把資料型別短的組合成長的,如轉 uint8_t 為 uint16_t。
原始資料:
uint8_t d1 = 0x01;
uint8_t d2 = 0x07;
轉成:
uint16_t wd = 0x0701;
此時需要瞭解點位元操作,就能寫程式實現。
程式實作:
uint16_t wd = ((uint16_t)d2 << 8) | d1;
原理:
(0x0007 << 8) | 0x01 = 0x0700 | 0x0001 = 0x0701
意思是d1向左位移8位元,再和d2結合。
參考:Combining two uint8_t as uint16_t。
隨意留個言吧:)~