返回

基于STM32F103标准库、rt-thread操作系统完美移植freemodbus主机程序

发布时间:2022-12-22 00:54:50 459
# 研究

一、说明
1.移植的开发环境是keil5。
2.基于rt-thread操作系统,也可以使用ucos和freeRTOS操作系统。
3.本人可有偿代移植其他操作系统,具体费用主页加我QQ联系。
4.页面底部有rt-thread操作系统移植成功的工程链接,大家可以参考。
二、移植步骤
由于移植过程比较繁琐,就不过多说明了,大家可以下载工程研究一下就行
三、特殊说明
1. 读取输入寄存器(功能04)
使用函数:

/**
* Modbus master input register callback function.
*
* @param pucRegBuffer input register buffer
* @param usAddress input register address
* @param usNRegs input register number
*
* @return result
*/
eMBErrorCode eMBMasterRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs )

读取值存入变量:

USHORT   usMRegInBuf[MB_MASTER_TOTAL_SLAVE_NUM][M_REG_INPUT_NREGS];

2. 读取线圈(功能01)
使用函数:

/**
* Modbus master coils callback function.
*
* @param pucRegBuffer coils buffer
* @param usAddress coils address
* @param usNCoils coils number
* @param eMode read or write
*
* @return result
*/
eMBErrorCode eMBMasterRegCoilsCB(UCHAR * pucRegBuffer, USHORT usAddress,
USHORT usNCoils, eMBRegisterMode eMode)

读取值存入变量:

ucMCoilBuf[MB_MASTER_TOTAL_SLAVE_NUM][M_COIL_NCOILS/8+1];

3.读取保持寄存器(功能03)
使用函数:

/**
* Modbus master holding register callback function.
*
* @param pucRegBuffer holding register buffer
* @param usAddress holding register address
* @param usNRegs holding register number
* @param eMode read or write
*
* @return result
*/
eMBErrorCode eMBMasterRegHoldingCB(UCHAR * pucRegBuffer, USHORT usAddress,
USHORT usNRegs, eMBRegisterMode eMode)

读取值存入变量:

USHORT   usMRegHoldBuf[MB_MASTER_TOTAL_SLAVE_NUM][M_REG_HOLDING_NREGS];

四、相关宏定义的设置
在 user_mb_app_m.c文件中,对离散量接收缓冲器 ucMDiscInBuf、线圈接收缓冲器 ucMCoilBuf、输入寄存器接收缓冲器 usMRegInBuf、保持寄存器接收缓冲器 usMRegHoldBuf的大小进行了定义。定义的缓冲区大小取决于对于下列宏的定义:
mbconfig.h 从机数量 MB_MASTER_TOTAL_SLAVE_NUM
user_mb_app.h 中:
#define RT_M_DISCRETE_INPUT_START 0 //离散量起始地址
#define RT_M_DISCRETE_INPUT_NDISCRETES 16 //离散量数量
#define RT_M_COIL_START 0 //线圈起始地址
#define RT_M_COIL_NCOILS 64 //线圈数量
#define RT_M_REG_INPUT_START 0 //输入寄存器起始地址
#define RT_M_REG_INPUT_NREGS 100 //输入寄存器数量
#define RT_M_REG_HOLDING_START 0 //保持寄存器起始地址
#define RT_M_REG_HOLDING_NREGS 100 //保持寄存器数量

五、工程链接
​STM32F103基于rt-thread操作系统移植的freemodbus主机完整工程​​

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线