[問題] RS232通訊問題

看板Programming作者 (費德勒5566)時間7月前 (2024/05/01 13:42), 編輯推噓5(5014)
留言19則, 5人參與, 4月前最新討論串1/1
大家好 最近拿到一台設備 會透過RS232丟資料出來 丟出來的資料都是簡單的數字帶一個「:」 所以寫了一支程式去接收數據 大概每0.1秒read一次 但發現有時候取得的資料長度會不一樣 也就是說,取得的資料格式沒有很固定 大部分時候都是正常的,像是 000: 036: 157: 但有時會讀到下面這種 0: 00: 甚至有時候會讀到空字串 不曉得是不是接收程序上有什麼問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.196.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1714542172.A.41B.html

05/01 13:56, 7月前 , 1F
rs232容易受干擾,至少用rs484
05/01 13:56, 1F

05/04 23:31, 7月前 , 2F
是不是斷句斷錯位置,通常是開頭碼固定,你
05/04 23:31, 2F

05/04 23:31, 7月前 , 3F
的設備通訊開頭碼是:,後面才是內容。試試
05/04 23:31, 3F

05/04 23:31, 7月前 , 4F
看改用定時讀取封包,判斷到開頭碼之後的3碼
05/04 23:31, 4F

05/04 23:31, 7月前 , 5F
是內容。
05/04 23:31, 5F

06/20 17:18, 6月前 , 6F
linux的話用poll去抓event,有POLL_IN
06/20 17:18, 6F

06/20 17:18, 6月前 , 7F
event的時候再去read,read進來的長度
06/20 17:18, 7F

06/20 17:18, 6月前 , 8F
不一定會是剛好完整的一筆,所以你要先
06/20 17:18, 8F

06/20 17:18, 6月前 , 9F
丟去暫存buffer,再從暫存找合理的一包
06/20 17:18, 9F

06/20 17:18, 6月前 , 10F
data再做解析
06/20 17:18, 10F

06/20 17:19, 6月前 , 11F
通常會建議這種走在serial或者tcp通道
06/20 17:19, 11F

06/20 17:19, 6月前 , 12F
,自己訂的protocol要做開頭跟結尾的pa
06/20 17:19, 12F

06/20 17:20, 6月前 , 13F
ttern
06/20 17:20, 13F

06/20 17:20, 6月前 , 14F
windows還是其他平台應該都會有類似類
06/20 17:20, 14F

06/20 17:20, 6月前 , 15F
似poll的system api可以用,細節我就相
06/20 17:20, 15F

06/20 17:20, 6月前 , 16F
對不熟了
06/20 17:20, 16F

06/28 14:32, 6月前 , 17F
先不要跑你的程式,先用minicom 類似的
06/28 14:32, 17F

06/28 14:33, 6月前 , 18F
terminal 程式來觀察。
06/28 14:33, 18F

08/24 20:30, 4月前 , 19F
間隔不要低於200ms
08/24 20:30, 19F
文章代碼(AID): #1cCTPSGR (Programming)
文章代碼(AID): #1cCTPSGR (Programming)