→ alibuda174: 42 32 0 175 231是錯的,那正確的數據應是什麼? 03/18 21:01
→ aaa7513231: 可以參考第一張圖的Channel 2 應該讀到8碼 03/18 21:09
→ aaa7513231: 42 3 2 0 239 221 206 03/18 21:09
→ alibuda174: 想不到問題出在哪耶... 請問你的溫濕度計是哪個? 03/18 21:55
溫濕度計我是用GR8000 這是台灣一家自己生產的,因為我想這不是很重要就一直沒說
推 chuegou: 隨便猜 while裡的 delay(50)拿掉 03/18 22:23
delay我有拿掉,是什麼影響,畢竟收到的資料都已經現存Rx的暫存器了
→ alibuda174: 亂猜 修改通訊參數 9600,N81改成其他的試試 03/18 22:46
8N1也沒什麼關係~
→ easypro: 先用個buffer存資料,把printf拿掉,等資料收完再printf 03/19 08:54
→ easypro: 出來,另外delay拿掉。 03/19 08:54
→ easypro: 另外把溫度sensor型號列出來,不然誰知道資料是不是正確 03/19 08:57
→ easypro: 的 03/19 08:57
→ easypro: delay是ms等級的,你延遲500會不會w太久了。 03/19 09:03
原本500ms是因為Modbus訊號通常要等300ms以上比較安全我才這樣寫的~
→ n666160: 大概是Serial的時序跑掉了吧 03/19 18:15
我覺得問題應該就跟N大講的一樣,有錯位或時序問題,但我其實不清楚為什麼這樣
最後,這問題我改用SoftwareSerial的Serial就可以正常讀取
很神奇吧~謝謝大家的熱心回覆,我想應該是Serial的底層讀取方式有差異
所以導致的問題
謝謝~
※ 編輯: aaa7513231 (1.165.197.146 臺灣), 03/19/2020 19:47:24
※ 編輯: aaa7513231 (1.165.197.146 臺灣), 03/19/2020 19:49:21
→ easypro: 你怎麼會產生modbus訊號延遲會比較久的錯覺,你應該是要 03/20 08:53
→ easypro: 看spec去決定你的接收延遲時間才對。 03/20 08:53
→ smtmike: 接收中怎能用print來浪費時間,更糟的是delay |||^_^ 04/21 22:55