STM32移植FreeModbus RTU教程3(FreeModbus移植后的实际验证)

下载工程到开发板并通过USB转485通讯线连接PC

打开工程编译完成后,通过stlink或者Jlink烧录器连接开发板并烧录程序。
在这里插入图片描述
在这里插入图片描述
PC与开发板进行连接并通讯

在这里插入图片描述

通过modbus调试助手进行通讯验证

在这里插入图片描述
找到USB转485通讯线对应的COM口并打开串口,进行通讯验证

03H 04H 06H 10H功能码的验证

  1. 03H功能码的验证
    在这里插入图片描述
    打开工程中的demo.c文件,我们可以看到我们初始定义的保持寄存器数量及初始存储值。下面我们进行通讯读取。
    读前两个寄存器内的数据:
    在这里插入图片描述
    我们工程内定义的从机地址为0x01,返回的数据与数据内数据对应。
    工程内我们的寄存器数据索引 = 寄存器数量 - 起始地址。1号寄存器对应的索引是0
    **发送读取寄存器超过定义的8个,则返回错误提示并带对应错误代码
    在这里插入图片描述
  2. 04H功能码的验证
    在这里插入图片描述
    输入寄存器定义如下 读取3个寄存器数据
    在这里插入图片描述
    返回数据如定义所示。
  3. 06H写单个保持寄存器功能码的验证
    1发送0x06功能码写第一个寄存器数据,将0x0000改写为0x120F
    2发送0x03功能码读取第一个寄存器改写后的值
    在这里插入图片描述
    通过返回数据,说明06单个寄存器功能码写成功。
  4. 10H写多个保持寄存器功能码的验证
    1发送0x10功能码写前两个寄存器数据,将0x0000改写为0x120F,将0x5678改写为0x1345
    2发送0x03功能码读取前两个寄存器改写后的值
    在这里插入图片描述
    根据返回数据验证10H功能改写成功。
    至此常用的03H 04H 06H 10H功能码均已通过实际验证,通讯正常。
    下面附上调试助手连接及已调试完成工程
    链接: modbus调试助手.
    链接: 已调试验证工程.

猜你喜欢

转载自blog.csdn.net/weixin_42634914/article/details/106469395