[问题] Arduino Serial port rx 解析资料错误

楼主: aaa7513231 (浑沌与秩序)   2020-03-18 20:51:25
大家好,先感谢前篇回复热心的大大们
受到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
这问题已经完全超出我能力了
要请教大家,这会是什么问题?
谢谢大家~
作者: alibuda174 (阿哩不达)   2020-03-18 21:01:00
42 32 0 175 231是错的,那正确的数据应是什么?
楼主: aaa7513231 (浑沌与秩序)   2020-03-18 21:09:00
可以参考第一张图的Channel 2 应该读到8码42 3 2 0 239 221 206
作者: alibuda174 (阿哩不达)   2020-03-18 21:55:00
想不到问题出在哪耶... 请问你的温湿度计是哪个?
作者: chuegou (chuegou)   2020-03-18 22:23:00
随便猜 while里的 delay(50)拿掉
作者: alibuda174 (阿哩不达)   2020-03-18 22:46:00
乱猜 修改通讯参数 9600,N81改成其他的试试
作者: easypro   2020-03-19 08:54:00
先用个buffer存资料,把printf拿掉,等资料收完再printf出来,另外delay拿掉。另外把温度sensor型号列出来,不然谁知道资料是不是正确的delay是ms等级的,你延迟500会不会w太久了。
作者: n666160   2020-03-19 18:15:00
大概是Serial的时序跑掉了吧https://upload.cc/i1/2020/03/19/WeMVKc.png
作者: easypro   2020-03-20 08:53:00
你怎么会产生modbus讯号延迟会比较久的错觉,你应该是要看spec去决定你的接收延迟时间才对。
作者: smtmike   2020-04-21 22:55:00
接收中怎能用print来浪费时间,更糟的是delay |||^_^

Links booklink

Contact Us: admin [ a t ] ucptt.com