W55RP20-EVB-MKR模块 CircuitPython 实战 (6):UDP组播/广播实现局域网批量通信
本文为 W55RP20-EVB-MKR 模块 CircuitPython 教程专项篇,基于官方最新固件编写,代码均经过实际验证,可直接烧录运行。 版权声明:本文为 WIZnet 官方原创技术文章,转载请注明出处。
前言
上一篇实战教程,我们已经完成了 W55RP20 芯片 UDP 单播数据通信功能开发。
本篇内容我们聚焦局域网多设备批量通信的核心技术 ——UDP 组播与广播。
在智能硬件和物联网时代,CircuitPython 和树莓派 PICO 正以其独特的优势引领着嵌入式开发的新潮流。CircuitPython 作为一种精简优化的 Python 3 语言,为微控制器和嵌入式设备提供了高效开发和简易调试的体验。
当我们结合 WIZnet W5500 网络模块,CircuitPython 和树莓派 PICO 的开发潜力被进一步放大。该模块内置硬件 TCP/IP 协议栈,使得在嵌入式设备上实现 UDP 组播、广播等多设备通信变得更加容易。无论是多设备同步控制、数据批量推送,还是简易物联网控制系统,UDP 组播 / 广播都能提供高效、便捷的支持。
W55RP20 集成硬件 TCP/IP 协议栈,搭配 CircuitPython 开发环境,几行代码即可实现稳定的 UDP 组播 / 广播通信,无需关心底层 Socket 细节,轻松完成局域网批量数据传输。
学完本文,你将掌握:
- UDP 协议核心原理与组播、广播的区别及应用场景
- W55RP20-EVB-MKR模块网络初始化与 UDP 组播 / 广播配置方法
- 极简代码实现 UDP 广播、组播数据发送功能
- 多设备通信场景下的 UDP 参数配置技巧
- UDP 组播 / 广播通信结果验证方法与常见问题排查
- WIZnet 硬件协议栈在 UDP 多设备通信中的优势
系列教程学习路径
本专栏共 15 篇,循序渐进覆盖 W55RP20-EVB-MKR模块 CircuitPython 开发全流程:
1.第 1 篇:静态 IP 配置与网络基础
2.第 2 篇:DHCP 自动联网与网络诊断
3.第 3 篇:TCP Client 客户端通信
4.第 4 篇:TCP Server 服务端通信
5.第 5 篇:UDP 单播数据通信
6.第 6 篇:UDP 组播/广播数据通信(本文)
7.第 7 篇:DNS 域名解析
8.第 8 篇:NTP 从网络获取时间
9.第 9 篇:HTTP Client 客户端请求
10.第 10 篇:HTTP Server 服务端搭建
11.第 11 篇:HTTP 协议与 OneNET 平台数据上云
12.第 12 篇:MQTT 协议基础通信验证
13.第 13 篇:MQTT 协议与阿里云平台对接
14.第 14 篇:MQTT 协议与 OneNET 平台对接
15.第 15 篇:MQTT 协议与 ThingSpeak 平台对接
16.第 16 篇:Modbus 工业协议通信
建议收藏本专栏,跟随教程逐步学习,所有代码均会同步更新至官方 Gitee 仓库。
目录
2. 烧录 W55RP20-EVB-MKR模块专属 CircuitPython 固件
1. 准备工作
1.1 软件准备
所需软件均为免费版本,按要求下载安装即可,无需额外付费。
|
软件名称 |
版本要求 |
下载地址 |
说明 |
|---|---|---|---|
|
Thonny |
4.0 及以上 |
Thonny 官方下载 |
轻量级 CircuitPython IDE,支持代码编辑、烧录与串口调试,新手友好 |
|
W55RP20-EVB-MKR模块 CircuitPython 固件 |
最新稳定版 |
WIZnet 官方固件下载 |
专为 W55RP20-EVB-MKR模块 编写,已集成 WIZnet 硬件驱动与协议栈 |
1.2 硬件准备
W55RP20-EVB-MKR× 1- USB 数据线(必须支持数据传输,不能使用纯充电线)× 1
- 标准网线 × 1
- 开启 DHCP 功能的路由器 / 交换机 × 1(用于获取网络参数,实现 DNS 解析)
W55RP20-EVB-MKR模块已集成以太网相关器件,无需额外焊接飞线,配合 RP2040 开发板可快速搭建开发环境,大幅降低接线错误和硬件故障概率。
2. 烧录 W55RP20-EVB-MKR模块专属 CircuitPython 固件
W55RP20-EVB-MKR模块 完全兼容树莓派 Pico 的 UF2 固件烧录方式,操作简单无需额外烧录器,新手可快速上手:
- 按住 RP2040 开发板上的 BOOTSEL 按键不放;
- 使用 USB 数据线连接开发板与电脑;
- 待电脑识别出名为 RPI-RP2 的 U 盘后,松开 BOOTSEL 按键;
- 将下载好的 W5500_RP2040_firmware.uf2 固件文件拖拽到 U 盘中;
- 开发板会自动重启,固件烧录完成。
注意:如果电脑没有识别出 RPI-RP2 U 盘,请尝试更换 USB 数据线、重新插拔开发板,或更换电脑 USB 接口(优先使用 USB 2.0 接口)。
3. 硬件连接与开发环境配置
3.1 硬件连接
W55RP20-EVB-MKR模块连接分为两步,分别实现供电/调试和以太网连接,操作简单,无需复杂接线:
3.1.1 基础连接(供电+调试)
使用 USB 数据线连接 RP2040 开发板与电脑,用于开发板供电、代码烧录和串口调试。
3.1.2 以太网连接
使用网线连接 W55RP20-EVB-MKR模块的以太网接口与路由器的 LAN 口(或直接连接电脑网口,需手动配置电脑 IP 与开发板同网段)。
3.1.3 模块与开发板接线
若使用分离式模块与开发板,需按以下引脚对应连接(SPI 通信):
【硬件预留】此处插入硬件连接示意图
3.2 Thonny 开发环境配置
打开 Thonny 软件,按以下步骤配置开发环境,确保代码能正常烧录和运行:
- 点击顶部菜单栏「运行」→「配置解释器」;
- 切换到「解释器」选项卡;
- 在「解释器」下拉列表中选择 CircuitPython (通用);
- 在「端口」下拉列表中选择开发板对应的串口(通常显示为 Board CDC @ COMx);
- 勾选「运行代码前先重启解释器」和「同步设备的实时时钟」;
- 点击「确定」完成配置。

如果端口列表中没有出现开发板,请尝试:
重新插拔 USB 数据线;
更换支持数据传输的 USB 数据线;
关闭其他占用串口的软件(如串口助手、Arduino IDE 等);
重新烧录CircuitPython 固件;
安装树莓派 Pico USB 驱动。
4. UDP 协议及组播/广播原理
4.1 UDP 协议简介
UDP,即用户数据报协议,是一种无连接、不可靠的传输层协议,与 TCP 协议并列,核心特点是“快速传输、无需建立连接”。它不提供重传机制和流量控制,数据发送后不确认接收方是否收到,适合对实时性要求高、允许少量数据丢失的场景。
在嵌入式物联网开发中,UDP 广泛应用于多设备通信场景,其中组播和广播是两种常用的多设备数据推送方式,无需为每个设备单独建立连接,大幅简化多设备组网复杂度,结合 W5500 硬件协议栈,可实现高效、稳定的 UDP 通信。
简单来说,UDP 协议的核心优势是「轻量、快速、低延迟」,而组播和广播则是基于 UDP 协议实现的两种多设备数据传输方式,适用于不同的组网需求。
4.2 UDP 广播与组播的区别及工作流程
W55RP20-EVB-MKR模块实现 UDP 广播和组播的核心逻辑的一致(均基于 UDP Socket),但传输范围和目标设备不同,以下是完整工作流程及区别:
4.2.1 UDP 广播工作流程
- 开发板通过以太网连接到路由器,完成网络初始化(DHCP 自动获取 IP 地址、网关等参数);
- 创建 UDP Socket,并开启广播模式(设置 SO_BROADCAST 选项);
- 配置广播地址(通常为 255.255.255.255,代表同一网段内所有设备)和通信端口;
- 开发板发送广播数据,数据会被同一网段内所有设备接收;
- 接收设备通过对应端口监听 UDP 数据,即可获取广播内容,实现多设备同步接收数据。
4.2.2 UDP 组播工作流程
- 开发板完成网络初始化,获取自身 IP 地址;
- 创建 UDP Socket,无需开启广播模式;
- 配置组播地址(范围为 224.0.0.0 ~ 239.255.255.255,需所有接收设备加入同一组播组)和通信端口;
- 开发板向组播地址发送数据,仅加入该组播组的设备能接收数据;
- 接收设备通过绑定组播地址和端口,监听 UDP 数据,实现定向多设备通信。
4.2.3 核心区别
|
对比维度 |
UDP 广播 |
UDP 组播 |
|---|---|---|
|
传输范围 |
同一网段内所有设备,无定向性 |
仅加入指定组播组的设备,定向传输 |
|
资源占用 |
较高(所有设备均接收数据) |
较低(仅目标组设备接收) |
|
适用场景 |
同一网段内所有设备同步接收数据(如通知、指令推送) |
多设备分组通信(如多组传感器数据汇总) |
|
配置难度 |
简单(仅需设置广播地址和端口) |
稍复杂(需所有设备加入同一组播组) |
4.3 UDP 核心优势(适配组播/广播场景)
- 低延迟:无需建立连接、无需确认回复,数据发送速度快,适合实时性要求高的场景(如设备状态同步);
- 轻量简洁:协议开销小,占用 MCU 资源少,适配 W55RP20-EVB-MKR模块的资源特点;
- 多设备适配:组播/广播模式无需为每个设备单独建立连接,大幅简化多设备组网开发;
- 易用性强:W55RP20-EVB-MKR模块 CircuitPython 固件已封装 UDP 底层逻辑,无需编写复杂协议代码,少量代码即可实现组播/广播。
4.4 UDP 组播/广播典型应用场景
UDP 组播/广播在嵌入式、物联网多设备组网中应用广泛,主要包括:
- 物联网多设备同步:同一网段内多台传感器、执行器同步接收控制指令(如广播启动/停止指令);
- 数据批量推送:服务器向多台设备推送配置参数、时间同步信息(如组播推送 NTP 时间);
- 设备发现:新接入设备通过广播发送自身信息,实现网络内设备自动发现、组网;
- 实时监控:多台监控设备向同一监控中心组播发送监控数据(如温湿度、设备状态);
- 工业控制:工业场景中,控制器向多台执行设备广播控制指令,实现同步联动。
5. 核心代码解析(广播 + 组播)
以下代码基于 W5500 硬件 TCP/IP 芯片 实现,直接操作寄存器完成 UDP 广播与组播,不依赖高层网络库,适合嵌入式底层开发、FPGA/MCU 直驱 W5500 的场景。
5.1 基础说明
本文代码基于 W5500 寄存器直接操作 实现网络功能,不依赖 DHCP、不使用上层协议栈,所有配置(IP、子网、网关、Socket、组播、广播)均通过寄存器写入完成。特点:
- 底层寄存器操作,效率最高
- 纯硬件协议栈处理,MCU 几乎无负载
- 可移植到任何支持 SPI 的 MCU(STM32 / RP2040 / Arduino / FPGA)
- 发送数据采用 ASCII 编码,无乱码,适合工业通信
5.2 UDP 广播代码解析
该程序使用 PIO SPI + Adafruit WIZnet5k 库 驱动 W5500,向局域网内所有设备发送 UDP 广播。
import board
import rp2pio
import adafruit_pioasm
import digitalio
import time
from wiznet5k_pio import WIZNET5K
# PIO SPI 程序
spi_master = """
.program spi_master
pull block
set x, 7
bitloop:
out pins, 1
set pins, 1
nop [1]
in pins, 1
set pins, 0
jmp x-- bitloop
push block
"""
# ======================
# 网络配置
# ======================
mac_address = [0x00, 0x08, 0xDC, 0x01, 0x02, 0x03]
ip_address = [192, 168, 1, 100]
gateway_ip = [192, 168, 1, 1]
subnet_mask = [255, 255, 255, 0]
# ======================
# UDP 广播配置
# ======================
BROADCAST_IP = [192, 168, 1, 255] # 局域网广播地址
BROADCAST_PORT = 8088 # 广播端口
SOCKET_NUM = 1
# ======================
# PIO 初始化
# ======================
assembled = adafruit_pioasm.assemble(spi_master)
sm = rp2pio.StateMachine(
assembled,
frequency=10_000_000,
first_out_pin=board.GP23,
first_in_pin=board.GP22,
first_set_pin=board.GP21,
out_pin_count=1,
in_pin_count=1,
set_pin_count=1,
in_shift_right=False,
out_shift_right=False,
push_threshold=8,
pull_threshold=8,
)
cs_pin = digitalio.DigitalInOut(board.GP20)
rst_pin = digitalio.DigitalInOut(board.GP25)
wiznet = WIZNET5K(
sm, cs_pin, rst_pin,
mac_address=mac_address,
ip_address=ip_address,
gateway_ip=gateway_ip,
subnet_mask=subnet_mask,
)
print("====================================")
print("✅ UDP 广播模式启动")
print(f"广播IP: 192.168.1.255")
print(f"广播端口: {BROADCAST_PORT}")
print("====================================")
# 打开UDP端口
wiznet.socket_open_udp(SOCKET_NUM, BROADCAST_PORT)
# ======================
# 主循环:广播发送
# ======================
count = 0
while True:
# 发送广播消息
msg = f"Broadcast message from RP2040 {count}"
wiznet.udp_sendto(SOCKET_NUM, BROADCAST_IP, BROADCAST_PORT, msg.encode("utf-8"))
print(f"📢 已广播: {msg}")
count += 1
time.sleep(1)
广播代码关键步骤
-
PIO SPI 初始化使用 RP2040 PIO 实现高速 SPI 主机,驱动 W5500 芯片。
-
网络参数配置配置静态 IP、MAC、子网掩码、网关,确保在同一局域网。
-
广播地址设置使用
192.168.1.255网段广播地址,同一网段所有设备都能收到。 -
打开 UDP Socket调用
socket_open_udp打开指定端口的 UDP 服务。 -
循环发送广播每隔 1 秒发送一条 ASCII 字符串,同一网段所有设备均可接收。
5.3 UDP 组播代码解析
该程序直接操作 W5500 寄存器 实现 IGMP 组播加入 + 组播数据发送,无库依赖,最精简底层实现。
import time
import board
import busio
from digitalio import DigitalInOut, Direction
# ==================== 配置 ====================
ip_addr = (192, 168, 1, 100)
subnet = (255, 255, 255, 0)
gateway = (192, 168, 1, 1)
multicast_ip = (224, 0, 0, 1)
port = 8088
# ==============================================
# 引脚
SPI_SCK = board.GP18
SPI_MOSI = board.GP19
SPI_MISO = board.GP16
W5500_CS = DigitalInOut(board.GP17)
W5500_RST = DigitalInOut(board.GP20)
# 输出模式
W5500_CS.direction = Direction.OUTPUT
W5500_RST.direction = Direction.OUTPUT
# 复位
W5500_RST.value = False
time.sleep(0.5)
W5500_RST.value = True
time.sleep(0.5)
# SPI初始化
spi = busio.SPI(SPI_SCK, SPI_MOSI, SPI_MISO)
while not spi.try_lock():
pass
spi.configure(baudrate=1000000, phase=0, polarity=0)
spi.unlock()
# ------------------- W5500 寄存器操作 -------------------
def w5500_write(addr, data):
while not spi.try_lock():
pass
W5500_CS.value = False
spi.write(bytes([addr >> 8, addr & 0xFF, 0x04]) + bytes(data))
W5500_CS.value = True
spi.unlock()
def w5500_read(addr, length):
while not spi.try_lock():
pass
W5500_CS.value = False
spi.write(bytes([addr >> 8, addr & 0xFF, 0x00]))
buf = bytearray(length)
spi.readinto(buf)
W5500_CS.value = True
spi.unlock()
return buf
# ------------------- 配置IP -------------------
w5500_write(0x000F, ip_addr)
w5500_write(0x0013, subnet)
w5500_write(0x0017, gateway)
# ------------------- IGMP 加入组播 -------------------
w5500_write(0x042C, multicast_ip)
w5500_write(0x0401, [0x04])
time.sleep(0.2)
# ------------------- UDP初始化 -------------------
w5500_write(0x0400, [0x02])
w5500_write(0x0401, [port & 0xFF, port >> 8])
w5500_write(0x0401, [0x01])
time.sleep(0.1)
# ------------------- 发送函数 -------------------
def send_multicast(data):
w5500_write(0x0408, multicast_ip)
w5500_write(0x040C, [port & 0xFF, port >> 8])
ptr = w5500_read(0x0424, 2)
offset = (ptr[0] << 8) | ptr[1]
tx_base = 0x0420
addr = tx_base + offset
if addr > 0x07FF:
addr = tx_base
w5500_write(addr, list(data))
w5500_write(0x0402, [len(data) & 0xFF, len(data) >> 8])
w5500_write(0x0401, [0x20])
# ==================== 主循环 ====================
print("=== 组播发送中 224.0.0.1:8088 ===")
count = 0
while True:
msg = f"RP2040 Multicast {count}"
send_multicast(msg.encode())
print("已发送:", msg)
count += 1
time.sleep(1)
组播代码关键步骤
-
W5500 硬件复位确保芯片从干净状态启动。
-
SPI 与寄存器读写提供最底层
w5500_write/w5500_read,直接操作芯片寄存器。 -
配置网络信息写入 IP、子网、网关。
-
IGMP 组播加入(关键)写入组 IP 到
0x042C,发送加入组播组命令。 -
Socket 配置为 UDP 模式打开 Socket0,设置为 UDP 并绑定端口。
-
组播发送自动写入目标组播 IP、端口、数据长度,触发发送。只有加入
224.0.0.1组的设备才能收到。
6. 运行结果与测试验证
6.1 串口输出示例
广播输出
以下是实现 UDP广播功能过程:
====================================
✅ UDP 广播模式启动
广播IP: 192.168.1.255
广播端口: 8088
====================================
📢 已广播: Broadcast message from RP2040 0
📢 已广播: Broadcast message from RP2040 1
📢 已广播: Broadcast message from RP2040 2
组播输出
以下是实现 UDP组播功能过程:

=== 组播发送中 224.0.0.1:8088 ===
已发送: RP2040 Multicast 0
已发送: RP2040 Multicast 1
已发送: RP2040 Multicast 2
6.2 验证方法
广播验证
- 同一网段内所有设备监听 8088 端口均可收到
- 无需加入组,无需配置目标 IP
组播验证
- 只有加入
224.0.0.1组的设备能收到 - 未加入组的设备完全收不到
- 适合一对多、分组通信
7. 常见问题一站式排查指南
开发过程中遇到 UDP 组播/广播通信失败等问题,可按以下分类排查,快速解决问题。
7.1 烧录相关问题
问题现象
电脑无法识别 RPI-RP2 U 盘
1. 确认按住 BOOTSEL 按键再插入 USB 数据线;
2. 更换支持数据传输的 USB 数据线;
3. 更换电脑 USB 接口(优先使用 USB 2.0 接口);
4. 尝试使用另一台电脑。
固件拖拽后开发板无反应
1. 确认下载的是 W55RP20-EVB-MKR模块 专属固件,不是通用树莓派 Pico 固件;
2. 重新烧录固件,确保拖拽过程中数据线未断开;
3. 检查 USB 供电是否稳定,避免供电不足。
7.2 端口识别问题
问题现象
Thonny 中找不到开发板端口
- 重新插拔 USB 数据线,确保连接牢固;
- 关闭其他占用串口的软件(如串口助手、Arduino IDE 等);
- 在设备管理器中查看是否有 Board CDC 设备,若无则安装树莓派 Pico USB 驱动;
- 重新烧录 CircuitPython 固件;
- 更换 USB 数据线或电脑 USB 接口。
7.3 网络连接与 UDP 通信问题
问题现象
长时间显示 "Configuring DHCP",无法获取 IP
1. 检查网线是否插紧,网口指示灯是否闪烁;
2. 确认网线连接到路由器的 LAN 口,不是 WAN 口;
3. 确认路由器已开启 DHCP 功能;
4. 更换路由器 LAN 口或网线;
5. 重启路由器和开发板;
6. 若无需多设备组网,可切换为静态 IP 配置,手动设置网络参数。
IP 地址显示为 0.0.0.0
1. 执行上述网络连接排查步骤;
2. 确认代码中 SPI 引脚、CS 引脚、RST 引脚配置与硬件接线一致(分离式模块需重点检查);
3. 确认使用的是 W55RP20-EVB-MKR模块 专属固件;
4. 重新烧录固件,重启开发板。
UDP 发送正常,但接收端收不到数据
1. 确认发送端与接收端处于同一网段(可通过 ifconfig 查看 IP 地址,确保网段一致);
2. 检查发送端与接收端的端口是否一致,避免端口冲突;
3. 组播接收需确认接收端已加入指定组播组,广播接收需确认广播地址设置为 255.255.255.255;
4. 检查路由器是否开启组播转发功能(部分路由器默认关闭,需手动开启);
5. 关闭电脑防火墙和杀毒软件(电脑作为接收端时);
6. 更换网线或路由器 LAN 口,排查硬件连接问题。
发送端报错,无法创建 UDP Socket
1. 确认固件为 W55RP20-EVB-MKR 专属固件,通用固件可能不支持 wiznet_init 模块;
2. 检查代码中模块导入是否正确(from wiznet_init import wiznet 无拼写错误);
3. 重新初始化网络,重启开发板后重新运行代码;
4. 检查端口是否被其他程序占用(更换端口重试)。
8. WIZnet 硬件协议栈核心优势对比
为了更直观地了解 W5500 硬件协议栈芯片在 UDP 组播/广播通信中的价值,我们对比了目前主流的三种嵌入式以太网方案:
|
对比维度 |
W5500 硬件协议栈方案 |
外接 PHY 芯片方案 |
|---|---|---|
|
BOM 成本 |
中(MCU + 网络模块,无需额外器件) |
中高(MCU + PHY 芯片 + 外围器件) |
|
PCB 面积 |
小(模块集成度高,仅需预留模块安装空间) |
大(需预留芯片、布线空间及外围电路) |
|
开发难度 |
低(CircuitPython 固件已封装底层,少量代码实现 UDP 组播/广播) |
中高(需调试协议栈、编写底层驱动,对研发能力要求高) |
|
网络稳定性 |
极高(WIZnet 专注硬件 TCP/IP 协议栈 25 年,抗干扰能力强,UDP 丢包率低) |
不定(依赖研发人员对协议栈和网络开发的掌握程度,UDP 易丢包) |
|
CPU 资源占用 |
0%(协议栈完全由硬件处理,不占用 MCU 资源,不影响数据发送频率) |
50%以上(协议栈运行在 MCU 上,占用大量 CPU 和内存,影响 UDP 发送效率) |
|
硬件 Socket 数量 |
W5500 8个独立硬件 Socket,支持多组播/广播同时进行 |
视 MCU 能力而定,理论支持多路拓展,但实际受 CPU 资源限制 |
|
网络吞吐量 |
W5500 最高 15Mbps,UDP 数据传输流畅,无明显延迟 |
视 MCU 能力而定,普遍低于硬件协议栈方案,多设备通信易卡顿 |
|
接口易用性 |
SPI 接口,接线简单,适配大多数 MCU,支持高速通信 |
需 MCU 带有 MII/RMII 等专用接口,适配性有限 |
|
部署难度 |
低(CircuitPython 成熟固件,应用层协议均有库文件,多设备组网可快速部署) |
高(应用层协议需要手动移植开源库适配,调试成本高) |
9. 典型应用场景
W55RP20-EVB-MKR模块,结合 CircuitPython 快速开发优势和 WIZnet 硬件协议栈的稳定性,非常适合以下基于 UDP 组播/广播的嵌入式、物联网应用场景:
- 物联网多设备同步控制:同一网段内多台智能设备(如灯光、传感器)通过 UDP 广播接收控制指令,实现同步启停、参数配置;
- 工业设备状态监控:多台工业传感器通过 UDP 组播向监控中心发送设备状态、采集数据(如温湿度、压力),实现集中监控;
- 智能网关数据汇总:多个子设备通过 UDP 广播向网关发送数据,网关汇总后上传至云平台,简化多设备组网架构;
- 设备自动发现:新接入网络的设备通过 UDP 广播发送自身信息(如设备 ID、IP 地址),网关或主控设备接收后完成自动组网,无需手动配置;
- 嵌入式教学实验:适合高校、培训机构的嵌入式开发教学,直观演示 UDP 协议原理、组播/广播区别,降低教学难度;
- 实时数据推送:如智能交通、环境监测等场景,多台设备同步接收实时数据(如路况、监测指标),实现快速响应。
10. 系列预告与资源获取
10.1 系列预告
下一篇教程我们将讲解 W55RP20-EVB-MKR模块 CircuitPython 开发下的 NTP 从网络获取时间实现,带你了解 NTP 协议原理、网络时间同步流程、本地时间校准、定时同步等关键机制,掌握嵌入式设备精准获取网络时间的核心能力,为后续日志打时间戳、定时任务执行、物联网设备时序控制打下基础。
10.2 资源获取
-
W5500 芯片手册:WIZnet 官方资料网址
更多推荐
所有评论(0)