我使用WINAPI(在C)使用以下創建的端口來讀取從COMPORT批處理:ReadFile的COM整批
hSerial= CreateFile(COM5,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL |FILE_FLAG_NO_BUFFERING,
NULL);
,然後讀入批量數據被lengthIn長:
ReadFile(hSerial,Data,lengthIn,lengthOut,NULL)
lengthOut表示實際讀取的數據量。
我需要確保在每次迭代中實際讀取lengthIn字節而不是更少,我該怎麼做?我如何確保lengthIn = lengthOut每次?
我認爲它與創建端口時的屬性有關(如FILE_FLAG_NO_BUFFERING),但我不確定哪一個以及如何。
你可以繼續閱讀,直到你有所有的數據。當您可以接收任意數據塊時,另一種處理方式是將所有數據全部接收到緩衝區中,然後根據需要進行處理。 – Deanna 2013-04-08 12:54:33
我想到了迪安娜,但認爲我必須有一些自動的方式,就像@Jonathan Potter所建議的那樣。雖然謝謝! – BioSP 2013-04-08 14:20:59