從串列埠讀取位元組之前先延時50ms,之前!!!之前!!!之前!!!
後面又出現了問題,傳送指令也需要延時!!!否則一條指令傳送不完整,獲取到的應答包就會出錯。
總的說來:1)傳送資料要傳送完(延遲),否則指令就會執行出錯,解析應答包就會出錯。2)接受資料要接受完(延遲),否則解析應答包不完整!!public
static
byte
readfromport
(serialport serialport)
;try
catch
(interruptedexception ex)
try}
catch
(ioexception e)
finally
}catch
(ioexception e)
}return bytes;
}
這句的位置放在下面的try語句裡讀取資料都要出錯。
根據需要可以將多延時下thread.sleep(1000);
特別特別感謝:
參考了下面的也不行,不過總結的很好了:
C 解決串列埠接收資料不完整
使 用快取機制完成。首先通過定義乙個成員變數listbuffer new list 4096 用來存放所有的資料,在接收函式裡,通過buffer.addrange 方法不斷地將接收到的資料加入到buffer中,並同時對 buffer中的資料進行檢驗,如果達到一定的長度並且校驗結果正確 校驗方法在傳送...
C 解決串列埠接收資料不完整
使用快取機制完成。首先通過定義乙個成員變數listbuffer new list 4096 用來存放所有的資料,在接收函式裡,通過buffer.addrange 方法不斷地將接收到的資料加入到buffer中,並同時對 buffer中的資料進行檢驗,如果達到一定的長度並且校驗結果正確 校驗方法在傳送方...
C 解決串列埠接收資料不完整
c 解決串列埠接收資料不完整 引用鏈結 使 用快取機制完成。首先通過定義乙個成員變數listbuffer new list 4096 用來存放所有的資料,在接收函式裡,通過buffer.addrange 方法不斷地將接收到的資料加入到buffer中,並同時對 buffer中的資料進行檢驗,如果達到一...