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

树莓派Pico W连接WiFi时出现[Errno 1] EPERM错误求助

解决树莓派Pico W WiFi连接时的EPERM错误

核心问题排查

你的代码里存在变量名笔误:定义了mpd = '<mypassword>',但wlan.connect中传入的是这个错误变量,会导致密码参数异常,这大概率是触发EPERM错误的原因。

解决方案

  • 修正变量名错误
    将密码变量名改为password,连接时传入正确变量:

    password = '<mypassword>'
    # ...
    wlan.connect(ssid, password)
    
  • 避免网络接口占用
    激活STA模式前先关闭可能已激活的接口,防止资源冲突:

    wlan = network.WLAN(network.STA_IF)
    if wlan.active():
        wlan.active(False)
        sleep(0.5)
    wlan.active(True)
    
  • 检查WiFi频段兼容性
    树莓派Pico W仅支持2.4GHz WiFi网络,不要尝试连接5GHz频段的SSID,频段不兼容也会触发权限类错误。

  • 增加超时机制(可选)
    原代码的无限等待逻辑可能掩盖其他问题,建议添加超时判断:

    timeout = 10
    while not wlan.isconnected() and timeout > 0:
        print('waiting for connection...')
        sleep(1)
        timeout -= 1
    

修正后的完整代码

import network
import socket
from time import sleep
import machine

ssid = '<myssid>'
password = '<mypassword>'

def connect():
    wlan = network.WLAN(network.STA_IF)
    # 重置网络接口
    if wlan.active():
        wlan.active(False)
        sleep(0.5)
    wlan.active(True)
    wlan.connect(ssid, password)
    
    timeout = 10
    while not wlan.isconnected() and timeout > 0:
        print('waiting for connection...')
        sleep(1)
        timeout -= 1
    
    if wlan.isconnected():
        ip = wlan.ifconfig()[0]
        print(f'connected on {ip}')
    else:
        print('connection timeout')
     
try:
    connect()
    sleep(1)
except OSError as error :
    print(f'error: {error}')
    machine.reset()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:58:13