STM32
直播中

生龙活虎3

8年用户 724经验值
擅长:光电显示
私信 关注
[问答]

STM32如何移植FreeModbus RTU

STM32如何移植FreeModbus RTU

回帖(1)

张永强

2021-10-13 15:17:46
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调试助手.
    链接: 已调试验证工程.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分