目前我忙於使用C#的串口編程,並且對這個東西很新。我已經構建了一個控制檯應用程序...在這個應用程序中,我每200毫秒輪詢一個RS 232設備。設備必須每次響應輪詢一個字節的響應。C# - 串行端口 - 數據接收事件 - 奇怪的行爲
大多數時候,我通過數據接收事件獲取期望的字節。但是,有時數據收到的事件不會觸發......甚至,我試圖讀取每個輪詢後可用的字節..我沒有得到預期的字節。
在沒有運氣的情況下花費了很多時間之後,當串口應用程序運行時,我意外地打開了瀏覽器。突然,收到的數據事件開始爲每個民意調查...在瀏覽器被打開後,幾秒鐘後,事件再次發生火災。我試着打開一些其他應用程序,同樣的行爲繼續。幾秒鐘之後,事件就會被解僱,之後沒有事件發生。看起來如果CPU很忙,收到的數據事件工作正常。
有人可以遇到同樣的問題嗎?請建議如何確保每次收到數據接收事件觸發。謝謝!
請在下面找到示例代碼。
Every 200 ms.
Serial.Parity = System.IO.Ports.Parity.Mark;
Thread.Sleep(2);
Serial.Write(0x01, 0, 1);
Thread.Sleep(1);
Serial.Parity = System.IO.Ports.Parity.Space;
Thread.Sleep(2);`
我不知道你是如何管理接收。但是,我添加了一個名爲Data的Accessor從EventArgs開始的類。 – Marc
你能顯示代碼嗎?發送投票的代碼在哪裏? – dbasnett
如果你顯示你的代碼,這將有所幫助,對問題的口頭描述不夠好。通過輪詢串口是什麼意思?數據接收事件在字節到達時觸發,不需要額外的輪詢。 – user2019047