-
1 # 巴黎巷尾一夢茶色
-
2 # 使用者8065227085369
(1)呼叫SerialPort.DiscardInBuffer 方法可以清空序列驅動程式的接收緩衝區的資料。
此方法等效於 Visual Basic 6.0 程式碼:MSComm1.InBufferCount = 0 (2)呼叫SerialPort.DiscardOutBuffer 方法可以清空序列驅動程式的傳送緩衝區的資料。此方法等效於 Visual Basic 6.0 程式碼:MSComm1.OutBufferCount = 0 -
3 # 電信一姐525
透過設定ReadTimeout屬性解決你的問題。程式碼如下SerialPort com = new SerialPort("COM1");// 設定讀取超時為5秒(5000毫秒)com.ReadTimeout = 5000;try{ com.Read(receiveData, 0, readStatus[5]*2+5);}catch(TimeoutException){ //超時無資料異常處理}
-
4 # fyoda1935
SerialPortcom3=newSerialPort("COM1",9600),System.IO.Ports.Parity.None,8,System.IO.Ports.StopBits.One);com3.DiscardInBuffer();//丟棄來自序列驅動程式的接收緩衝區的資料每次接收資料後,呼叫DiscardInBuffer方法就可以把快取中的資料清除了
-
5 # 使用者8663205403318
提供個思路:第一個需求:首先新建個窗體,拖控制元件放置兩個按鈕,按鈕的Onclick事件中,分別設定不同的DialogResult來傳值到主窗體。比如一個這麼寫:this.DialogResult = DialogResult.Cancel; this.Close(); 另一個就:this.DialogResult = DialogResult.OK; this.Close(); 然後主窗體收到值之後判斷一下,就可以給變數賦值了。至於第二個需求,.NET提供了操作串列埠的位於System.IO.Ports 名稱空間下的SerialPort 類。例項化並配置好一個這樣的類,然後訂閱它的DataReceived事件,然後判斷收到的資料,然後給標誌變數置位就可以了。
回覆列表
請問資料來源來自哪裡!
個人覺得:
1、讀取串列埠資料先設定好com口,波特率、奇偶校驗、停止位數、資料位數等
2、資料傳送了資料口,串列埠適當延時後在讀取。
3、你可以把串列埠的2#和3腳短路,進行除錯程式!電腦先傳送資料,然後立即讀取,以測試硬體和軟體。