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工作在从机模式
笔者在移植过程中遇到的大坑:
- 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
- 等待协议就绪后(产生事件EV_READY),才能进行通信
- 确认自己的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工作在从机模式
笔者在移植过程中遇到的大坑:
- 在中断服务函数中,调用FreeRTOS提供的函数,必须要用FromISR结尾的函数
- 等待协议就绪后(产生事件EV_READY),才能进行通信
- 确认自己的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
暂无评论