找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1858|回复: 6
收起左侧

MODBUS+485通讯,只需要一个串口就能完成

[复制链接]
ID:525244 发表于 2022-2-7 09:39 | 显示全部楼层 |阅读模式
昨天调试modbus时,发送正常,接收不正常,后来排查是单片机和RS485读之间的电阻坏了,想出了一个想法:RS485在接收的时候,发送是无效的,能不能在正常发送的是否,发送一个无法发出的空字节,启动发送,发送完毕中断之后就是一个发送字节的长度。modbus主机在发送完指令后,将RS485设置到接收状态,然后发送空字节,发送一次加1,当累加的数值超过1s(设置的等待时间),判定为读取失败,重新发送读取指令。在接收到一个字节之后,将计数器清零,在发送一个字节时+1,等到加到3以上时,判定为接收完成。这样只用1串口就能完成串口的接收完成判断。省去了1ma定时器。大家觉得这样行吗?抽空试一下。。。
回复

使用道具 举报

ID:883242 发表于 2022-2-7 14:50 | 显示全部楼层
1)485本来就只需要一个串口。
2)第一次听说计数器论ma的。
回复

使用道具 举报

ID:476652 发表于 2022-2-7 15:03 | 显示全部楼层
有新想法就是好同志!!可以再多测试下自己的想法,其实串口通信就是这样的,没有RS485芯片控制点,
回复

使用道具 举报

ID:94031 发表于 2022-2-7 15:19 | 显示全部楼层
modbus 收发是有协议规范的,不能随便自己创造。
回复

使用道具 举报

ID:525244 发表于 2022-2-8 09:34 来自触屏版 | 显示全部楼层
xuyaqi 发表于 2022-2-7 15:19
modbus 收发是有协议规范的,不能随便自己创造。

你说的是协议,只要按照协议发送数据就行,具体怎么实现,没要求。对资源紧缺的8脚单片机来说,能省一个是一个
回复

使用道具 举报

ID:525244 发表于 2022-2-8 09:37 来自触屏版 | 显示全部楼层
Hephaestus 发表于 2022-2-7 14:50
1)485本来就只需要一个串口。
2)第一次听说计数器论ma的。

我就说计数器ma咋地了?你只用一个串口,来说说,不用定时器,你是啥方式来判断接收完成?
回复

使用道具 举报

ID:47286 发表于 2022-2-8 12:59 | 显示全部楼层
感觉这和485没啥关系 发数据流都需要知道什么时候发送或者叫接收完毕了 至于485 那只是一种传输介质 和uart i2c spi等等有啥区别 485又不像can有专门的控制芯片 不都是单片机控制么 至于结束判断 有用结束符的 有用总长的 也有用时间的 你这想法也可以 随着硬件速度的增加 用什么方法消耗都差不多 爱用哪个方法就用哪个呗

对于8pin的单片机 网上有不需要控制脚 只用RX TX两脚的电路图 我试过两种都还行 低速用一个mos管 高速用一片555
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表