STM32移植FreeModbus RTU教程3(FreeModbus移植后的实际验证)
STM32移植FreeModbus RTU教程3(FreeModbus移植后的实际验证)
下载工程到开发板并通过USB转485通讯线连接PC
打开工程编译完成后,通过stlink或者Jlink烧录器连接开发板并烧录程序。
PC与开发板进行连接并通讯
通过modbus调试助手进行通讯验证
找到USB转485通讯线对应的COM口并打开串口,进行通讯验证
03H 04H 06H 10H功能码的验证
- 03H功能码的验证
打开工程中的demo.c文件,我们可以看到我们初始定义的保持寄存器数量及初始存储值。下面我们进行通讯读取。
读前两个寄存器内的数据:
我们工程内定义的从机地址为0x01,返回的数据与数据内数据对应。
工程内我们的寄存器数据索引 = 寄存器数量 - 起始地址。1号寄存器对应的索引是0
**发送读取寄存器超过定义的8个,则返回错误提示并带对应错误代码 - 04H功能码的验证
输入寄存器定义如下 读取3个寄存器数据
返回数据如定义所示。 - 06H写单个保持寄存器功能码的验证
1发送0x06功能码写第一个寄存器数据,将0x0000改写为0x120F
2发送0x03功能码读取第一个寄存器改写后的值
通过返回数据,说明06单个寄存器功能码写成功。 - 10H写多个保持寄存器功能码的验证
1发送0x10功能码写前两个寄存器数据,将0x0000改写为0x120F,将0x5678改写为0x1345
2发送0x03功能码读取前两个寄存器改写后的值
根据返回数据验证10H功能改写成功。
至此常用的03H 04H 06H 10H功能码均已通过实际验证,通讯正常。
下面附上调试助手连接及已调试完成工程
链接: modbus调试助手.
链接: 已调试验证工程.