CSerialPort串口類使用中遇到的問題

CSerialPort串口類用來讀寫串口,編程工具:VC2008
讀串口時,用這個LONG dlg::OnCommunication(WPARAM ch, LPARAM port)
if (nPLC_XQ != 84)
{
strPLC_XQ[nPLC_XQ] = ch;
nPLC_XQ++;
}
每次讀取84個字節的數據,很有規律,也是自己想要的數據。
在讀串口的同時,也要向串口寫數據,而寫成功後,串口有返回,比如:01 06 00 04 00 08 C9 CD
而這段數據是自己不想要的,這段數據會穿插在原來正確的字符串的不同位置,這樣解析出來的數據就完全不對了。

請問有什麼好的辦法去除自己不想要的數據?
或者有其它更好的讀取辦法,前提是還使用CSerialPor這個類。
感謝回覆。

串口發完數據有一個結速符的,當完了結束符號時,把緩存區的數據清空,
當你寫完一條數據的時候後,你應該接收返回值,判斷是否成功?
然後自己再丟棄數據即可.

你每串數據後面加上校驗位,校驗不通過的數據丟掉,校驗可以是數據的抑或操作
你來的數據肯定有個buffer的,你把buffer清空就行了!

這個類恰好沒有buffer,它每收到一個字符,就發消息通知收到字符了,然後用戶去處理。
所以根本每辦法處理,也就是說,每辦法去判斷那些是你想要的,那些是你不想要的。

怎麼每次接收一個字符啊,自己擴展一下,一次接收緩衝區中所有數據

來源:英超直播

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章