STM32 - RS485与ModBus协议

RS485:是一种物理层的电气标准。属于物理层的接口,串行半双工通信,传输差分信号(根据电压差来确定传输 1 还是 0),支持协议的通过(如Modbus协议)。

Modbus协议介绍:

  1. Modbus协议的报文格式介绍:

    1. 格式:从机地址(设备编号) + 功能码 + 数据(读和写) + 校验

    2. 对于读取来说:

      1. 从机地址(设备编号) —> 找谁

      2. 功能码 —> 执行什么样的操作

      3. 数据 —> 包括起始地址(读取哪个线圈或寄存器)、输出数量(读取多少)、从哪个地方开始读

      4. 校验 —> 判断数据的对错

        ModBus1

    3. 对于写入来说:(写多个)

      1. 从机地址(设备编号) —> 找谁

      2. 功能码 —> 执行什么样的操作

      3. 数据 —> 包括起始地址(写入哪个线圈或寄存器)、输出数量(写入寄存器个数),字节数(改变多少的字节数),输出值(对应的地址位置数据改变成什么)

      4. 校验 —> 判断数据的对错

        ModBus2

图片介绍:

RS485

读取从机寄存器的数据:(03)

RS485-03功能码

RS485-03功能码2

向一个寄存器中写入数据:(06)

RS485-06功能码1

向多个寄存器中写入数据:(10)

RS485-10功能码

参考链接:

STM32+RS485+Modbus-RTU(主机模式+从机模式)-标准库/HAL库开发_stm32modbus主机-CSDN博客