
到这里不再管屏幕发送这块逻辑了,用温度那一部分的03H功能码的一段代码读流量计,也没反应。
板子与电流测量卡的MODBUS通讯已经建立起来,排除这方面的错误。
1. 翻通讯手册发现波特率和地址位默认的是19200和未知,去找上位机帮忙修改波特率9600、地址33(21H)
2. 询问商家,告知默认通讯是商家自己的MFC协议,去找上位机改成标准的MODBUS YH,奇偶校验选none
还是通讯不上,所以放弃单片机调试,直接用ss串口助手开始测
在这里没仔细看说明书就开始想当然接线,以为MFC只是遵循MODBUS协议,输出还需要过一步ttl转485,然后再去接485转usb。
一开始没管DE、RE这两个使能管脚,没有反应。之后把两根线接入到我单片机自己创造的一个方波上,有杂乱信号了。后来排查应该是没有共地得到的干扰。
3. 求助亦宸和我一起分析,在文档15页发现管脚有效的是1,3,4。很恰好的是,我买的6p6c的rj11转MODBUS发出来的线只给了三根,而且是234。另外,文档中输出的信号直接是485格式,所以无需另外转485
接下来:
1. 拿到线,把134对应的线接好,用PC端测试,保证可以通讯上
2. 然后用单片机写一个03H指令的报文,看能否收到。
3. 确定一下发送对应的06H指令报文,验证06H报文的正确性
4. 上stm32
连接:
RJ11的134,需要看对应线厂家的接口,看引出来到哪,对应的哪三根线。
更新:上午问了厂家,可以对应134→532,到时候记得不接错就行。
从AB出来接485转USB。差分信号不需要共地?那2和4的地分别跟谁共?有待研究。

6467

被折叠的 条评论
为什么被折叠?



