RP2040-HAT-MODBUS-C

本文详细介绍了如何在RP2040-HAT-MODBUS-C项目中配置W5500或W5100S-EVB-Pico板以实现ModbusTCP/RTU/ASCII通信,包括CMakeLists设置、定时器配置和UART接口的Modbus串行化,以及使用modbuspoll/slave工具进行测试的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WIZnet Pico 板上的 Modbus TCP RTU/ASCII

转发: RP2040-HAT-MODBUS-C


项目介绍

RP2040-HAT-MODBUS-C

该项目是在 W5500-EVB-Pico 或 W5100S-EVB-Pico 上运行的 Modbus TCP RTU/ASCII 示例代码。

W5100S-EVB-Pico | WIZnet Document System W5500-EVB-Pico | WIZnet Document System

设置 CMakeLists

在 RP2040-HAT-MODBUS-C/CMakeLists.txt 中设置 PICO_SDK_PATH
请参阅下面的文档了解更多信息。
https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html

if(NOT DEFINED PICO_SDK_PATH)
    set(PICO_SDK_PATH ${CMAKE_SOURCE_DIR}/libraries/pico-sdk)
    message(STATUS "PICO_SDK_PATH = ${PICO_SDK_PATH}")
endif()

如果您使用的是 W5100S-EVB-Pico 板,请进行以下更改。 默认为 W5500-EVB-Pico。

# Set ethernet chip
set(WIZNET_CHIP W5100S)

设置定时器

如果您有不同的 MCU 或不同的时钟,则需要设置计时器。 本例设置定时器为20khz。
RP2040-HAT-MODBUS-C\port\modbus\src\mbtimer.c

1/20khz = 50us

add_repeating_timer_us(50, vMBPortTimersCallback, NULL, &g_mb_timer);

设置 Modbus 串行

在此示例中,UART1 TX : 4、RX : 5 引脚转换为 Modbus 串行。
波特率为 19200。 RP2040-HAT-MODBUS-C\port\modbus\inc\mbserial.h

#define UART_MODBUS uart1
#define UART_MODBUS_TX 4
#define UART_MODBUS_RX 5
#define UART_MODBUS_BAUDRATE 19200

建造

RP2040-HAT-MODBUS-C

mkdir build
cd build
cmake -G "NMake Makefiles" ..
nmake

我使用 modbus poll/slave 工具进行了测试。
总线轮询: Modbus Master Simulator
MODBUS从站 : Modbus Slave Simulator

Modbus 池连接:

Modbus Poll connect.png

Modbus 从站连接:

Modbus Slave connect.png

测试结果 :

Test Result.png

文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值