c串列埠通訊多條字串迴圈傳送的問題

2021-03-04 04:20:05 字數 1666 閱讀 6053

1樓:匿名使用者

多執行緒自然是要用的,否則介面就死鎖。

原理很簡單,把要發的資料存成結構化陣列,開一個執行緒傳送;接收是用serialport的接收事件。

有一些優秀的串列埠軟體,像格西烽火等,你也可以參考一下。

利用c#向串列埠按順序迴圈傳送一條一條指令的問題

2樓:灰姑娘的霸氣

1、在介面新增串列埠

控制元件2、設定串列埠的屬性

3、根據你協議的情況確定是16進位制傳送還是傳送字串,編寫傳送程式4、編寫串列埠接收程式,通過接收的資料,分析出裝置控制情況listlist=new list();byte bt=new byte;//第一條指令list.add(bt);

bt=new byte;//第二條指令list.add(bt);

//重複至第n條

foreach(byte b in list)

3樓:匿名使用者

listlist=new list();

byte bt=new byte;//第一條指令list.add(bt);

bt=new byte;//第二條指令

list.add(bt);

//重複至第n條

foreach(byte b in list)當然,如果條數固定也可以不用list,用交錯陣列byte list = new byte

,new byte,

new byte

};foreach(byte b in list )

c# 串列埠連續傳送接收資料藍屏問題 20

4樓:匿名使用者

看看藍屏時提示的錯誤原因,多收集幾次藍屏的錯誤原因及出錯地址,看看有沒有規律性。

**里加上列印debug資訊,看看最後是在哪個函式裡導致的藍屏,debug資訊可以包括:迴圈次數、區域性陣列的大小、字串的長度……等等。

c#串列埠通訊應答式傳送

5樓:匿名使用者

將要傳送的命令新增到list中,開一個執行緒去依次發次list中的命令。

設定一個

標誌,傳送後將標誌isreceived設定為false,然後迴圈判斷該標誌的狀態,直到變為true即接收到有效資料,或者時間超過一定後還為false視為接收出錯或者超時。

在serialport的接收事件datareceived接收資料處理,當接收正確將isreceived設定為true,錯誤設定為false。

當然這裡的標誌可以設定得更細化,用一個enum型別來表示

6樓:輕舞霓裳

首先定義好通

訊協議。應答式和連續式並沒有太大的區別。 都是定義好通訊協議,首先上位機傳送命令,下位機接受到命令傳送資料。

上位機判斷資料長度,資料的型別,最後做資料校驗,通過資料長度判斷是否全部接收成功,再判斷資料的準確性。當資料沒有問題則繼續發生資料請求,如果資料有問題則向你說的清楚資料再傳送資料請求命令。

7樓:匿名使用者

我做過這樣的工程,用執行緒使用定時器定時傳送命令,另外的執行緒等待資料到達即可,資料到達後可以通過校驗位監測資料是否正確,錯誤的直接丟棄,正確的進一步處理,比如存入資料庫。

如果到達的資料是請求應答,那麼就傳送一個應答。

C迴圈讀取文字帶有指定字串的行

string tempstr system.io.streamreader sr new system.io.streamreader 123.txt tempstr sr.readtoend string rows tempstr.split string str foreach string s...

C字串中刪除輸入的字母,如何在c 的字串中刪除某個字串

include include void main void delete string char str,char ch str j 0 這個地方也錯了,j 0,相當於把首字元用空格覆蓋 錯了delete string str 這裡是兩個引數 陣列,被刪除的字母 delete string str...

c語言如何刪除一串字串中指定的字串

include include intmain elseprintf 要刪除字字串未找到 n return0 c語言刪除字串中指定字元 一 問題描述 從鍵盤輸入一個字串給str和一個字元給c,刪除str中的所有字元c並輸出刪除後的字串str。1 輸入 第一行是一個字串 第二行是一個字元。2 輸出 刪...