在 STM32 上使用 Modbus 协议进行通信需要结合硬件配置和软件实现。下面我将从硬件连接、软件配置到代码实现,为你提供一个完整的指南。
硬件连接
Modbus RTU 通常使用 RS-485 接口进行通信,因此需要一个 RS-485 转换器。典型的连接方式如下:
-
STM32 与 RS-485 转换器连接:
- STM32 的 UART TX 引脚 → RS-485 转换器的 DI(数据输入)
- STM32 的 UART RX 引脚 → RS-485 转换器的 RO(数据输出)
- STM32 的一个 GPIO 引脚 → RS-485 转换器的 RE/DE(接收 / 发送使能)
-
RS-485 网络连接:
- RS-485 转换器的 A 线 → 网络中的 A 线
- RS-485 转换器的 B 线 → 网络中的 B 线
- 两端设备需连接 120Ω 终端电阻
STM32CubeMX 配置
使用 STM32CubeMX 配置基本外设:
-
配置 UART:
- 选择一个 UART(如 USART1)
- 设置波特率(如 115200)、数据位(8)、停止位(1)、无校验
- 启用接收和发送 </