QT接收到串列埠收到的十六進製制資料判斷問題

2021-10-06 14:04:06 字數 783 閱讀 7485

這個專案是移植到開發板上的程式,以前在windows下通過串列埠收到的qbytearray資料通過temp[i] !=0xeb這種寫法沒有出過錯誤。由於在開發板上執行,串列埠沒有通過qt自帶的serialport類接收資料,並且無法打斷點,所以只能對比列印來判斷。

通過列印出的資料可以看到,程式在判斷0xac的時候出了問題。這說明型別應該是不存在問題的。但是由於**功底不是很好,又按照網上的方法轉換了好幾次。

qdebug()<

if(0x2f == ((unsigned char)temp[7]))

if(temp.at(7) == 0x2f)

if(s_data[7] == 0x2f)

if((int)s_data[7] == 0x2f)

最後發現如果在開發板通過char*收到的資料轉為qbytearray後會出現這種bug。

C 串列埠程式設計十六進製制處理

第一 設定引數 在開啟串列埠之前,需要設定串列埠的串口號 波特率 停止位 資料位 校驗位。對應c serialport.portname baudrate stopbits databits partity 例子 serialp new serialport com4 9600,parity.non...

十六進製制的減法

實驗要求 程式設計計算3550h 2320h,按16進製制輸出計算所得的差1230h。再輸出3550h 2321h的差,檢驗程式的正確性。考慮依次將1230h 即0001 0010 0011 0000 b 從高位到低位,每4位二進位制數一組分離出來,再將4位二進位制數轉換為ascii碼,利用dos系...

十六進製制的TXT檔案怎麼以十六進製制讀出來?

txt中的內容是4e6574776f726b205365637572697479 但是執行後的不是txt中的十六進製制內容,include include include include typedef unsigned char byte typedef unsigned int dword 32...