RP2040运行MicroPython首次WiFi连接失败问题求助
问题分析与解决方案
核心问题原因
- 首次运行连接失败:
wifi.connect()是异步执行的,调用后不会立刻完成连接流程,紧接着调用isconnected()时连接还未建立,所以返回False。第二次运行时,Pico的WiFi模块缓存了之前的连接凭据,启动后自动完成连接,因此isconnected()直接返回True。 - 循环重试导致无限循环:在循环中反复调用
wifi.connect()会打断正在进行的连接过程——每次调用都会重新发起连接请求,干扰了模块正常的握手流程,导致设备在路由器端显示已接入,但本地isconnected()始终无法正确识别连接状态。
修正后的代码
import network import time wifi = network.WLAN(network.STA_IF) wifi.active(True) # 先检查是否已连接,避免重复发起连接 if not wifi.isconnected(): print('正在连接WiFi...') wifi.connect('<<SSID>>', '<<Password>>') # 等待连接完成,可根据需求调整超时时间 timeout = 10 while not wifi.isconnected() and timeout > 0: print(f"等待连接,剩余{timeout}秒") time.sleep(1) timeout -= 1 if wifi.isconnected(): print(f"连接成功!IP地址: {wifi.ifconfig()[0]}") else: print("连接超时,请检查WiFi凭据或信号")
额外注意事项
- 确保
<<SSID>>和<<Password>>替换为实际的WiFi名称和密码,注意大小写敏感。 - 如果WiFi信号较弱,可适当延长超时时间。
- 若仍有问题,可尝试清除缓存后重新连接:
wifi.disconnect() time.sleep(1) wifi.connect('<<SSID>>', '<<Password>>')
内容的提问来源于stack exchange,提问作者mu88
相关产品推荐
相关产品推荐

