【问题标题】:Problem when running Threads in MicroPython with ESP32 [closed]使用 ESP32 在 MicroPython 中运行线程时出现问题 [关闭]
【发布时间】:2021-06-29 15:31:34
【问题描述】:

我有以下代码。我想在 ESP32 上运行它。 MicroPython 已安装。问题是什么都没有发生。我没有收到任何错误,但 testThread() 方法在任何时候都不会被调用。 我真的不知道问题出在哪里。

提前感谢您的回答。

代码:

import _thread
import time

def testThread():

  while True:
    print("Hello from thread")
    time.sleep(2)

_thread.start_new_thread(testThread, ())

【问题讨论】:

  • 该代码看起来不错。当我在交互式 >>> 提示符下输入它时,它会按预期运行,每 2 秒打印一次 Hello from thread。我在 ESP32 上运行 MicroPython v1.14。
  • 好的...谢谢。当我运行代码时,我什么也得不到。问题是来自 ESP32 还是来自 MicroPython 版本?
  • 您的设备上安装了哪个版本的 micropython?

标签: python microcontroller python-multithreading esp32 micropython


【解决方案1】:

与 esp32 线程执行相同的问题 - 调用打印语句的线程函数没有输出。不仅如此,当线程退出时,它还使 esp32 崩溃。

但是,幸运的是,我有另一个 esp32,线程函数按预期工作,输出被打印到 repl。

问题似乎是最新版本的micropython,可以通过执行uos.uname()来检查。

工作 version 1.12.0version 1.14.0 失败

uname 输出:

WORKING: (sysname='esp32', nodename='esp32', release='1.12.0', 
version='v1.12-286-gc5cc64175 on 202
0-03-25', machine='ESP32 module with ESP32')

FAILED: (sysname='esp32', nodename='esp32', release='1.14.0', version='v1.14 
on 2021-02-02', machi
ne='ESP32 module with ESP32') 

【讨论】:

  • 哇,那个版本已经快一年了。你确定你的 1.14 不是不稳定的版本吗?当你去下载固件时,有4个选择,前3个是不稳定版本。您似乎不需要降到 1.12 来完成这项工作。这意味着线程已经中断了一年多,但它曾经可以工作。像 ESP32 这样流行的设备在线程方面被放弃一年多似乎不太现实。
  • 我也用这个版本运行,但我没有得到任何输出:-(.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 2021-05-03
相关资源
最近更新 更多