從串口讀取數據,有兩種方法,1、每接收一個EV_RXCHAR,就用ReadFile讀一次,這樣我覺得太恐怖了。2、接收到一個EV_RXCHAR后,等一定數據量的CPU周期(GetTickCount),再一次性讀取緩沖區里的數據。這樣做,一般情況下不會有問題,但是,如果數據很多,過了“一定數據量的CPU周期”,還沒收完數據怎么辦?就會少讀數據了。 我用三個線程序來完成串口數據的接收,其實就是第一種方法的變種: 一個偵聽EV_RXCHAR,一個對EV_RXCHAR進行分析,其實就是超時判斷。如果接收到一個消息后,一段時間沒收到下一個EV_RXCHAR,就認為是一個數據包的結束。這個線程就會通知數據接收線程,進行數據接收。一般同一包數據,兩個字符之間的時間間隔,應該很小了吧,而兩個數據包之間的間隔,應該不會太小吧!(這個地方我不清楚,猜的:( :) )最后一個線程,是接收數據的。
標簽:
串口
讀取
數據
上傳時間:
2014-01-24
上傳用戶:cylnpy