找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2897|回复: 10
收起左侧

51单片机modbus双从机端口设计问题

[复制链接]
ID:236982 发表于 2019-2-9 12:21 | 显示全部楼层 |阅读模式
51单片机(STC15或者STC8)实现MODBUS双从机端口,
利用单片机的串口1和串口2同时作为MODBUS RTU从机,一个端口可以实现,如果要实现通过两个串口实现从机功能,应该怎么处理
哪位能提供一下思路或者提供一个参考代码?
回复

举报

ID:236982 发表于 2019-2-13 15:15 | 显示全部楼层
自己先顶一下
回复

举报

ID:158375 发表于 2019-2-13 16:20 | 显示全部楼层
既然使用 MODBUS,采用不同的地址就OK了。
回复

举报

ID:476229 发表于 2019-2-13 17:39 | 显示全部楼层
这个简单,我以前用stm32做过双串口实现MODBUS RTU从机,2个串口分别有自己的中断服务函数,接收buff,发送buff都不要共用,中断优先级也别抢占。把你写好的串口1的代码,复制一份出来,稍微修改一下就可以了

评分

参与人数 1黑币 +10 收起 理由
yousunny + 10 赞一个!

查看全部评分

回复

举报

ID:236982 发表于 2019-2-13 17:54 | 显示全部楼层
版主,都>96小时了,赶紧叫大师出来露个面
回复

举报

ID:236982 发表于 2019-2-13 20:08 | 显示全部楼层
lushaobiao1 发表于 2019-2-13 17:39
这个简单,我以前用stm32做过双串口实现MODBUS RTU从机,2个串口分别有自己的中断服务函数,接收buff,发送 ...

两个串口公用一个MODBUS程序,现在有一个问题,就是串口1在调用MODBUS的时候,串口2如果有请求的话就得等串口1处理完,反之亦反。现在有几个问题:
1、如何判断当前串口调用完了MODBUS程序?
2、两个中断的不管是同级还是优先级,怎样设置才更好一些?
3、超时应该怎么做?
回复

举报

ID:236982 发表于 2019-2-13 20:10 | 显示全部楼层
笨笨兔 发表于 2019-2-13 16:20
既然使用 MODBUS,采用不同的地址就OK了。

我说的是单片机作为从机的MODBUS双串口源代码,估计你说的是上位机访问方面的吧
回复

举报

ID:158375 发表于 2019-2-14 08:16 | 显示全部楼层
suuy79 发表于 2019-2-13 20:10
我说的是单片机作为从机的MODBUS双串口源代码,估计你说的是上位机访问方面的吧

有区别吗?
从机的MODBUS,你就当这是另一台从设备不就完了。。。。。。
回复

举报

ID:236982 发表于 2019-2-14 10:12 | 显示全部楼层
笨笨兔 发表于 2019-2-14 08:16
有区别吗?
从机的MODBUS,你就当这是另一台从设备不就完了。。。。。。

你的意思在单片机内部再重新搞一套一模一样的代码?
回复

举报

ID:476396 发表于 2019-2-14 10:39 | 显示全部楼层
中断处理程序只负责接收,建立两个数组,中断程序只负责把接收到的数据丢到数组即可,协议解析在主程序中实现,另外将中断嵌套功能使能。
回复

举报

ID:236982 发表于 2019-2-14 14:23 | 显示全部楼层
wush1977 发表于 2019-2-14 10:39
中断处理程序只负责接收,建立两个数组,中断程序只负责把接收到的数据丢到数组即可,协议解析在主程序中实 ...

能够提供一个示例代码吗?
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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