c串列埠通訊,同時傳送多條命令,為什麼不行?裝置接收不到資料,只能接收到第一次傳送的,其餘的收不到

2021-04-01 08:11:01 字數 1350 閱讀 5172

1樓:走路最好

親 我也在學這個 剛好不會 你分享下咯

2樓:匿名使用者

你說的同時發生,是指怎麼傳送?

把**貼出來看看,描述的不清楚

3樓:雷卓掌憶彤

首先確定接收的資料是不是對的,再說轉換問題,資料有高低位不能直接tostring

c#串列埠通訊中,傳送,接收,解析資料,通過按鈕控制,當按多次按鈕時,傳送相同資料,每次接收到的不一樣

4樓:匿名使用者

它是根據你傳送資訊,進行返回你請求資訊?(

傳送相同資料,每次接收到的不一樣) 不明白什麼意思?

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

5樓:匿名使用者

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

設定乙個

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

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

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

6樓:輕舞霓裳

首先定義好通

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

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

7樓:匿名使用者

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

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

使用c#進行rs485串列埠通訊,因為485是半雙工,在程式中該如何設定通訊方向,即將串列埠設定為傳送或接收狀態

8樓:

看你怎麼接的線,串列埠轉485的晶元很多時候接法是讀寫使能和寫引腳是連一起回的,你根本不

答用關心讀寫方向,寫的時候自動轉成寫狀態,平時為讀狀態,只要你不同時讀寫就沒問題。。。。。。rs485 pc機沒有提供驅動,如果使能引腳是單獨的,那你就要看驅動說明了,看他說怎麼設定,serialport是rs232封裝的驅動,沒有這一項設定。。。

vb串列埠通訊CPU佔用率很高,vb 串列埠通訊CPU佔用率很高

這 寫的 do loop 一般迴圈還好了 goto都用上了,最好不要用這個 比較慢,佔用cpu也多。這樣時間當然會長了 可以用迴圈語句修改一下 同意 xmxqiyan的答案 如果你確實懶改成事件處理的話,可宣告sleep api,然後在迴圈裡呼叫即可。補充 我也沒太多關注你能不能收到資料,只是,在任...

微控制器串列埠通訊原理,微控制器串列埠通訊的原理?

1 51系列微控制器的串列埠有4個模式,可分別用作串並轉換 並串轉換 非同步序列通訊 2種模式 非同步序列通訊中,有1 8 1和1 8 1 1兩種幀格式,多機通訊是特殊的通訊方式。2 基本原理是兩組移位暫存器。將並行通訊轉換成序列通訊模式 傳送部分 或反之 接收部分 可全雙工執行。3 速度通過移位脈...

pc機與微控制器串列埠通訊問題利用串列埠通訊助手將字串發給微控制器微控制器返回字串到串列埠通訊助手

問題出在你傳送時關掉中斷,因為丟掉了資料造成的,解決的辦法是 延時一段時間等待接收完畢後再傳送,比如檢測到有接收資料後,延時10毫秒,之後再傳送回pc。給你指出幾處明顯的錯誤。1.resv沒有最大值的限定,這樣你的程式在執行的時候ch resv 會指向不明位址,因為ch最大為10個位元組。2.某種程...