You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下用nrf5284dk/dongle运行Zephyr Echo示例遇网络接口错误求助

问题

在Windows 11环境下,使用nrf52840dk作为服务端、nrf52840dongle作为客户端运行Zephyr Echo客户端/服务端示例时,客户端启动后报错:

[00:00:00.321,746] <err> net_if: There is no network interface to work with!
*** Booting Zephyr OS build zephyr-v3.5.0-4086-g0a8d03b95f84 ***
[00:00:00.322,113] <wrn> net_config: No auto-started network interface - network-bound app initialization skipped.
[00:00:00.322,113] <inf> net_echo_client_sample: Run echo client
[00:00:00.322,174] <inf> net_echo_client_sample: Network disconnected

已执行的操作:

  • 服务端编译烧录命令:
west build -p -b nrf52840dk_nrf52840 -d build_dk_echo_server \zephyr\samples\net\sockets\echo_server\ -- -DCONF_FILE="prj.conf"
west flash -d .\build_dk_echo_server\
  • 客户端编译烧录命令:
west build -p -b nrf52840dongle_nrf52840 .\zephyr\samples\net\sockets\echo_client -- -DCONF_FILE="prj.conf" 
nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application build/zephyr/zephyr.hex --application-version 1 echo_client_dongle.zip
nrfutil dfu usb-serial -pkg echo_client_dongle.zip -p COM11

作为IoT开发新手,不确定该方案是否可行,需了解需启用的配置及后续步骤。

解决方案

该方案完全可行,报错原因是默认prj.conf未启用任何网络接口(nrf52840设备无有线网络,需启用BLE/802.15.4等无线网络栈)。以下是具体配置和步骤:

1. 选择网络类型

推荐使用**BLE IPSP(蓝牙低功耗互联网协议支持)**实现两设备间的IP通信,这是nrf52840设备间无线通信的典型方案。

2. 修改服务端(nrf52840dk)配置

复制echo_server示例的prj.conf为prj_ble.conf,添加/修改以下配置:

# 启用蓝牙及IPSP
CONFIG_BT=y
CONFIG_BT_IPSP=y
CONFIG_BT_DEVICE_NAME="EchoServer"

# 启用网络及IPv6(IPSP基于IPv6)
CONFIG_NETWORKING=y
CONFIG_NET_IPV6=y
CONFIG_NET_CONFIG_AUTOIPV6=y

# 启用日志调试
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_LOG=y

# Echo服务端配置
CONFIG_NET_SOCKETS=y
CONFIG_NET_ECHO_SERVER=y
CONFIG_NET_ECHO_SERVER_PORT=4242

重新编译烧录服务端:

west build -p -b nrf52840dk_nrf52840 -d build_dk_echo_server \zephyr\samples\net\sockets\echo_server\ -- -DCONF_FILE="prj_ble.conf"
west flash -d .\build_dk_echo_server\

3. 修改客户端(nrf52840dongle)配置

复制echo_client示例的prj.conf为prj_ble.conf,添加/修改以下配置:

# 启用蓝牙及IPSP
CONFIG_BT=y
CONFIG_BT_IPSP=y
CONFIG_BT_SCAN=y
CONFIG_BT_CONN=y
# 指定要连接的服务端蓝牙名称
CONFIG_BT_DEVICE_NAME="EchoClient"
CONFIG_BT_ECHO_SERVER_NAME="EchoServer"

# 启用网络及IPv6
CONFIG_NETWORKING=y
CONFIG_NET_IPV6=y
CONFIG_NET_CONFIG_AUTOIPV6=y

# 启用日志调试
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_LOG=y

# Echo客户端配置
CONFIG_NET_SOCKETS=y
CONFIG_NET_ECHO_CLIENT=y
# 服务端IPv6地址可留空,通过BLE IPSP自动获取,或使用服务端日志中的实际地址
CONFIG_NET_ECHO_CLIENT_ADDR="fdde:ad00:beef::1"
CONFIG_NET_ECHO_CLIENT_PORT=4242

重新编译烧录客户端:

west build -p -b nrf52840dongle_nrf52840 .\zephyr\samples\net\sockets\echo_client -- -DCONF_FILE="prj_ble.conf"
nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application build/zephyr/zephyr.hex --application-version 1 echo_client_dongle.zip
nrfutil dfu usb-serial -pkg echo_client_dongle.zip -p COM11

4. 调试验证

  • 分别连接两个设备的串口(DK通过USB转串口,dongle使用自身虚拟串口),查看日志输出。
  • 客户端会自动扫描并连接名为EchoServer的蓝牙设备,建立IPSP连接后自动发起echo请求。
  • 服务端收到请求后会回复数据,客户端日志会显示echo成功的信息。

注意事项

  • 若选择802.15.4替代BLE,需启用CONFIG_IEEE802154=y及相关配置,同时确保两设备处于同一频道。
  • 确认nrf52840dongle的串口COM端口正确,可通过Windows设备管理器查看。
  • 若服务端的IPv6地址不是fdde:ad00:beef::1,可从服务端日志中获取实际地址,修改客户端的CONFIG_NET_ECHO_CLIENT_ADDR。

内容的提问来源于stack exchange,提问作者yeetAE13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:35:05