打印

阿波罗STM32F429 RS485通讯使能端通过PCF8574控制的延时问题

[复制链接]
338|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第十代火影|  楼主 | 2018-7-9 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的单片机是原子的阿波罗STM32F429 与施耐德的PLC通过Modbus协议进行485通讯。
单片机为主站,PLC为从站。
调试时发现PLC能够收到单片机的下发通讯报文,并能正确动作,但单片机收到的PLC回复报文死活不对。
我在通讯链路中加入USB转485对整个的通讯报文监视发现PLC的回复报文是正确的,但单片机就是收不到正确报文。
我通过对比报文发现单片机收到的报文比PLC发出报文少了开始的近11个字节的数据。
为了查找这个原因,我在线跟踪后发现485芯片的读取控制端用的是PCF8574的P6口,这个是IIC接口,485芯片从发送模式改为接收模式需要运行这个PCF8574_WriteBit(RS485_RE_IO,en)函数,而运行这个函数需要将近25ms的时间,就是这个25ms造成了有部分数据无法接收。从而使得MODBUS通讯一直报错无法正常通讯。
最后希望把485端口的控制端直接用IO控制,减少切换时间。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

363

主题

363

帖子

0

粉丝