打印
[STM32F1]

STM32单片机作为下位机如何实现modbus通讯

[复制链接]
11751|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rhgz123|  楼主 | 2014-3-4 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是初学者想实现:
PC作为上位机,STM32f103开发板作为下位机,实现modbus通讯,从而实现步进电机控制(有驱动板,方向、脉冲) 请问如何实现,有没有类似的例子,请大神们详细给说下
沙发
airwill| | 2014-3-4 17:48 | 只看该作者
这不是三言两语的事情. 难度上也不是大问题. 根据 MODBUS 细化一个自己的协议.

使用特权

评论回复
板凳
mmuuss586| | 2014-3-4 17:51 | 只看该作者
MODBUS是个协议。
你按照协议编写程序即可

使用特权

评论回复
地板
rhgz123|  楼主 | 2014-3-5 09:25 | 只看该作者
airwill 发表于 2014-3-4 17:48
这不是三言两语的事情. 难度上也不是大问题. 根据 MODBUS 细化一个自己的协议. ...

请问上位机应该发送一条 什么样的 modbus信息,使得单片机接收后,发脉冲使得电机转动呢

使用特权

评论回复
5
rhgz123|  楼主 | 2014-3-5 09:26 | 只看该作者
mmuuss586 发表于 2014-3-4 17:51
MODBUS是个协议。
你按照协议编写程序即可

请问上位机应该发送一条 什么样的 modbus信息,使得单片机接收后,发脉冲使得电机转动呢

使用特权

评论回复
6
dqgcs123| | 2014-3-5 09:55 | 只看该作者
自己钻研比较好吧,就是选个通讯方式,再根据modbus协议编程即可

使用特权

评论回复
7
zhao3462910| | 2014-3-5 10:16 | 只看该作者
modbus协议框架。然后自己规定一些内容。

使用特权

评论回复
8
shangwei4444| | 2014-3-7 11:09 | 只看该作者
1、比如先调通串口通信,各芯片例程都有。
2、通信实现后按照modbus协议的框架发送数据,数据就是你要实现的具体操作或者参数设置。
3、下位机对这一帧数据接收完成后进行解析,再做具体操作。
modbus只是一种通用协议的框架,有很多优点,你自己写一个协议也行,只是别人不知道怎么解析它。

使用特权

评论回复
9
qrsgcslqg| | 2014-3-7 16:23 | 只看该作者
可以参考rtthread中的freemodbus,主从都有

使用特权

评论回复
10
一清如水| | 2014-3-7 19:47 | 只看该作者
9楼正解,modbus协议,一般是基于RS232或RS485,在上层规定了发送数据和解析数据的格式,具体格式参考协议,先搞懂串口,再搞协议

使用特权

评论回复
11
rhgz123|  楼主 | 2014-3-8 11:51 | 只看该作者
shangwei4444 发表于 2014-3-7 11:09
1、比如先调通串口通信,各芯片例程都有。
2、通信实现后按照modbus协议的框架发送数据,数据就是你要实现 ...

你好,谢谢你,串口我以调试好,我还有以下问题:
   1、pc做为上位机要给单片机发送一帧消息,通过modbus调试精灵这个软件可以吗?
   2、modbus RTU 判断一帧数据结束,是间隔3.5个字符的时间,请问如果波特率为115200,那怎么如何计算这3.5个字符的时间?
   3、例如,01 05 00 AC FF 00 4C 1B,这个写单个线圈,让从机1的172线圈为ON状态,我可以理解为在单片机上就是让某个IO口置位吗,那00AC这个地址在单片机上应该是谁呢,是怎么对应的呢

使用特权

评论回复
12
shangwei4444| | 2014-3-10 14:27 | 只看该作者
本帖最后由 shangwei4444 于 2014-3-10 14:35 编辑
rhgz123 发表于 2014-3-8 11:51
你好,谢谢你,串口我以调试好,我还有以下问题:
   1、pc做为上位机要给单片机发送一帧消息,通过modbu ...


1、任何一个串口调试助手都可以,要保证能够正常和下位机通信;
2、波特率为115200,就是说发送端每 1/115200s 发送一个bit,同样,接收端每 1/115200s 查询一次电平,所以要设置同样的波特率;
3、00 AC不一定是实际的某个寄存器的地址,要看程序里是怎么写的,看看程序里拿到这个地址做了什么,估计有一些switch-case;同样,具体ON状态的功能也要看程序,看执行什么具体操作,不一定是操作某个IO。
你这个领域我不太了解,协议只是为了传递正确的数据,之后对数据的解析跟协议没有关系,完全是应用程序的事。

使用特权

评论回复
13
llyyff1636| | 2015-7-2 07:15 | 只看该作者
stm32作为从机,怎样处理主机发送的数据

使用特权

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

本版积分规则

4

主题

13

帖子

0

粉丝