Modbus主机、从机协议栈从入门到精通

1、介绍

工作的原因,笔者完成了STM32+FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作

FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的,而主机的代码是收费的,网上关于主机的资料又少的可怜,移植的过程一言难尽

So,笔者决定出一个关于FreeModbus主机、从机协议栈的教程,方便大家快速的学习并使用该协议

笔者历时半个月整理了如下学习FreeModbus所需全部相关资料:

文件 说明
freemodbus-v1.6.zip FreeModbusV1.6源码
FreeModbusMasterSlave(Rev1.0.0).zip 笔者移植好测试通过STM32+FreeRTOS+FreeModbus Master Slave代码
ModbusSlave 7.0和ModbusPoll_7.0软件注册码.zip FreeModbus Master Slave调试工具
FreeModbus V1.6 主机使用说明.md FreeModbus 主机使用说明文档
FreeModbus 从机流程图.vsd FreeModbus 从机流程图
FreeModbus 主机流程图.vsd FreeModbus 主机流程图
Modbus应用协议.doc 笔者整理的 FreeModbus 协议文档
FreeModbus Datasheet 笔者搜集 FreeModbus 官方协议文档

2、移植工作

平台 野火H743-Pro开发板
Cpu STM32H743XIH6
Os FreeRTOSV9.0.0
Func FreeModbus主机、从机协议栈

在这里插入图片描述
app下文件:定义数据缓冲区,实现FreeModbus功能回调接口
src下文件:FreeModbus协议栈的源码
port下文件:平台相关文件,移植时根据自己的平台进行修改

主从模式选择通过 “…\FreeModbus\port\prot.h” 中的宏定义实现:

//#define MODBUS_MASTER_MODE //Modbus工作在主机模式
#define MODBUS_SLAVE_MODE      //Modbus工作在从机模式

笔者在移植过程中遇到的大坑:

  1. 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
  2. 等待协议就绪后(产生事件EV_READY),才能进行通信
  3. 确认自己的RS485收发芯片所支持的最大波特率

3、测试工作

安装笔者提供的Modbus协议调试工具
Modbus Poll:从机调试工具。该软件是主机协议栈
Modbus Slave:主机调试工具,该软件是从机协议栈

Mdobus Poll软件打开如下,使用说明:

Slave ID 设置从机地址
Function 功能码;如读写保持寄存器、读写线圈等
Address 设置读写地址及数量
Scan Rate 周期性触发
Read/Write Disabled 单次触发,通过点击按钮Read/Write Once或按下F6触发一次读写命令

在这里插入图片描述
主机测试工具Modbus Slave使用方法与Modbus Poll大同小异

资料链接:https://download.csdn.net/download/u010650845/40765507

版权声明:本文为CSDN博主「DingUXiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010650845/article/details/121330063

1、介绍

工作的原因,笔者完成了STM32+FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作

FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的,而主机的代码是收费的,网上关于主机的资料又少的可怜,移植的过程一言难尽

So,笔者决定出一个关于FreeModbus主机、从机协议栈的教程,方便大家快速的学习并使用该协议

笔者历时半个月整理了如下学习FreeModbus所需全部相关资料:

文件 说明
freemodbus-v1.6.zip FreeModbusV1.6源码
FreeModbusMasterSlave(Rev1.0.0).zip 笔者移植好测试通过STM32+FreeRTOS+FreeModbus Master Slave代码
ModbusSlave 7.0和ModbusPoll_7.0软件注册码.zip FreeModbus Master Slave调试工具
FreeModbus V1.6 主机使用说明.md FreeModbus 主机使用说明文档
FreeModbus 从机流程图.vsd FreeModbus 从机流程图
FreeModbus 主机流程图.vsd FreeModbus 主机流程图
Modbus应用协议.doc 笔者整理的 FreeModbus 协议文档
FreeModbus Datasheet 笔者搜集 FreeModbus 官方协议文档

2、移植工作

平台 野火H743-Pro开发板
Cpu STM32H743XIH6
Os FreeRTOSV9.0.0
Func FreeModbus主机、从机协议栈

在这里插入图片描述
app下文件:定义数据缓冲区,实现FreeModbus功能回调接口
src下文件:FreeModbus协议栈的源码
port下文件:平台相关文件,移植时根据自己的平台进行修改

主从模式选择通过 “…\FreeModbus\port\prot.h” 中的宏定义实现:

//#define MODBUS_MASTER_MODE //Modbus工作在主机模式
#define MODBUS_SLAVE_MODE      //Modbus工作在从机模式

笔者在移植过程中遇到的大坑:

  1. 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
  2. 等待协议就绪后(产生事件EV_READY),才能进行通信
  3. 确认自己的RS485收发芯片所支持的最大波特率

3、测试工作

安装笔者提供的Modbus协议调试工具
Modbus Poll:从机调试工具。该软件是主机协议栈
Modbus Slave:主机调试工具,该软件是从机协议栈

Mdobus Poll软件打开如下,使用说明:

Slave ID 设置从机地址
Function 功能码;如读写保持寄存器、读写线圈等
Address 设置读写地址及数量
Scan Rate 周期性触发
Read/Write Disabled 单次触发,通过点击按钮Read/Write Once或按下F6触发一次读写命令

在这里插入图片描述
主机测试工具Modbus Slave使用方法与Modbus Poll大同小异

资料链接:https://download.csdn.net/download/u010650845/40765507

版权声明:本文为CSDN博主「DingUXiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010650845/article/details/121330063

生成海报
点赞 0

DingUXiu

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Modbus主机、从机协议栈从入门到精通

1、介绍 工作的原因,笔者完成了STM32FreeRTOS操作系统上FreeModbus(基于RS485)主机、从机协议栈的移植工作 FreeModbus是一款开源的Modbus协议,但只有从机代码是开源的&#x

stm32f1xx-freemodbus-RTU 移植

STM32F103芯片的 freemodbus RTU的移植和使用。1 示例代码 代码示例上传在 gitee上,仓库地址为freemodbus移植示例 2 freemodbus介绍 Freemodbus是一个奥地利人写的Modb

基于STM32的指纹密码锁

设计简介: 本设计是基于单片机的指纹密码锁,主要实现以下功能: 矩阵按键输入密码,并通过按键显示*号可通过按键或手机开门密码可通过按键进行开门可通过蓝牙模块连接手机进行开门可通过指纹进