hzyeeeeee 2024-04-13 09:40 采纳率: 57.9%
浏览 202
已结题

Esp32的microPython设备中main.py文件无法开机自启动

img

img

wifi连接模块代码已确认可正常运行,但Esp32在拔出UsB口,再与电脑重连时main.py文件无法正常自动运行,main.py里为wifi自连代码。

报错提示:KeyboardInterrupt:
MicroPython v1.19.1 on 2022-06-18; ESP32 module with ESP32
Type "help()" for more information.

  • 写回答

6条回答 默认 最新

  • 阿齐Archie 优质创作者: 嵌入式与硬件开发技术领域 2024-04-13 10:31
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由阿齐Archie整理回复,若还有疑问可评论或留言。

    从你提供的信息来看,你的ESP32设备在尝试运行main.py文件时遇到了KeyboardInterrupt异常。这通常是由于程序试图执行一个阻塞操作,但用户或其他程序通过键盘中断了该操作。然而,在这种情况下,这可能是由于wifi_connect函数在尝试连接Wi-Fi时被中断了。

    为了解决这个问题,你可以尝试以下几个步骤:

    1. 确保wifi_connect函数可以正确处理网络连接失败的情况。如果连接失败,它应该重试而不是中断程序。
    2. 检查你的main.py文件中是否有任何可能导致中断的代码。例如,如果使用了input()函数,用户输入可能会导致KeyboardInterrupt
    3. 尝试在main.py文件的开始处添加异常处理,捕获KeyboardInterrupt并忽略它,如下所示:
    try:
        from common.wifi import wifi_connect
        ssid = '你的SSID'
        password = '你的密码'
        wifi_connect(ssid, password)
    except KeyboardInterrupt:
        pass
    
    1. 如果问题仍然存在,你可能需要检查wifi_connect函数内部是否有任何可能导致中断的代码。确保所有网络操作都有足够的重试逻辑,并且在长时间等待响应时不会阻塞程序。

    2. 确保你的MicroPython固件是最新的,有时候固件的问题也可能导致类似的行为。

    3. 如果你的ESP32设备在连接到电脑时需要运行特定的代码,确保这些代码放在正确的位置。通常,ESP32设备的主程序应该放在main.py文件中,而启动脚本boot.py可以用来执行设备启动时需要运行的代码。

    如果你已经尝试了上述步骤,但问题依然存在,请提供更多的代码和信息,以便我能进一步帮助你。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月13日
  • 赞助了问题酬金15元 4月13日
  • 创建了问题 4月13日