大家好,先感謝前篇回覆熱心的大大們
受到Y大的啟發,我利用邏輯分析器分析發現不是485晶片的問題
可以參考下圖,我直接分析Arduino的Tx與Rx訊號
https://upload.cc/i1/2020/03/18/cO4LC3.png
485晶片回傳TTL訊號到Rx這端訊號是正確的
但是Arduino讀取時,不知名原因數據錯誤如下圖所示
https://upload.cc/i1/2020/03/18/bwCP31.png
附上我Arduino讀取的程式碼
https://upload.cc/i1/2020/03/18/IDMrBv.png
Arduino版為 Mega R3
這問題已經完全超出我能力了
要請教大家,這會是什麼問題?
謝謝大家~
42 32 0 175 231是錯的,那正確的數據應是什麼?
可以參考第一張圖的Channel 2 應該讀到8碼42 3 2 0 239 221 206
想不到問題出在哪耶... 請問你的溫濕度計是哪個?
作者:
chuegou (chuegou)
2020-03-18 22:23:00隨便猜 while裡的 delay(50)拿掉
亂猜 修改通訊參數 9600,N81改成其他的試試
先用個buffer存資料,把printf拿掉,等資料收完再printf出來,另外delay拿掉。另外把溫度sensor型號列出來,不然誰知道資料是不是正確的delay是ms等級的,你延遲500會不會w太久了。
作者: n666160 2020-03-19 18:15:00
你怎麼會產生modbus訊號延遲會比較久的錯覺,你應該是要看spec去決定你的接收延遲時間才對。
作者: smtmike 2020-04-21 22:55:00
接收中怎能用print來浪費時間,更糟的是delay |||^_^