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

树莓派Pico W使用asyncio.run启动WiFi AP模式报错求助

问题描述

在树莓派Pico W上运行代码时,调用wifi.radio.start_ap()开启WiFi接入点模式,执行asyncio.run(main_loop())时出现报错。尝试使用network模块但不被支持,且调用wifi.radio.connect()时也会进入AP模式。

相关代码:

async def main_loop():
    global led,button1

    button_task = asyncio.create_task(monitor_buttons(button1))
    
    pico_led_task = asyncio.create_task(blink_pico_w_led(led))
    print("Starting Wifi")
    #startWiFi()

    import ipaddress
    # Get wifi details and more from a secrets.py file
    secrets = {
    'ssid' : "wifi",
    'password' : "password"
    }

    print("Connect wifi")
    wifi.radio.start_ap(secrets['ssid'],secrets['password'])
    
    # Port to listen on
    print("conesso", wifi.radio.ipv4_address_ap)

    print("Starting Web Service")
    webservice_task = asyncio.create_task(startWebService())
    await asyncio.gather(pico_led_task, button_task, webservice_task)
    
asyncio.run(main_loop())
解决方案
  • 将WiFi AP初始化移到异步函数外同步执行
    网络硬件初始化属于阻塞性操作,不适合放在异步任务中执行。把wifi.radio.start_ap()的代码移到asyncio.run()之前,以同步方式完成初始化:
# 先导入所需模块、初始化硬件...

# 同步初始化WiFi AP
secrets = {
    'ssid': "wifi",
    'password': "password"
}
print("Starting Wifi AP")
wifi.radio.start_ap(secrets['ssid'], secrets['password'])
print("AP IP:", wifi.radio.ipv4_address_ap)

async def main_loop():
    # 仅创建并等待异步任务,不再包含网络初始化代码
    button_task = asyncio.create_task(monitor_buttons(button1))
    pico_led_task = asyncio.create_task(blink_pico_w_led(led))
    webservice_task = asyncio.create_task(startWebService())
    await asyncio.gather(pico_led_task, button_task, webservice_task)

asyncio.run(main_loop())
  • 升级CircuitPython版本
    旧版本CircuitPython可能存在异步环境下网络操作的兼容性问题,建议升级到最新稳定版(如8.x及以上),确保API和异步逻辑的兼容性。

  • 避免STA与AP模式冲突
    如果之前调用过wifi.radio.connect()(STA客户端模式),需要先停止STA模式再启动AP:

wifi.radio.stop_station()
wifi.radio.start_ap(secrets['ssid'], secrets['password'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:05:12