测试使用的是DFRobot的ESP-WROOM-32设备,该设备集成在FireBeetle ESP32开发板中。使用的MicroPython IDE是uPyCraft。
代码
[mw_shl_code=applescript,true]import _thread[/mw_shl_code]
然后,我们将声明thread函数。在本例中,我们将指定其接收两个输入参数,第一个参数是线程函数描述,第二个参数是一个计数器。
[mw_shl_code=applescript,true]def threadFunction(description, count):
## Thread function code[/mw_shl_code]
这个线程函数的逻辑非常简单。我们将先打印出线程描述参数,然后通过循环每次打印一条消息。循环的迭代次数等于线程函数的第二个参数(计数器值)。
[mw_shl_code=applescript,true]def threadFunction(description, count):
print(description)
i = 0
while i < count:
print("Iteration: " + str(i) )
i=i+1[/mw_shl_code]
在前篇帖子中介绍过,当函数返回时,线程就会退出。
因此,根据定义,元组的第一个元素是一个描述字符串,第二个元素则是一个计数器。本例中,我们将计数器设为5,表示循环共有5次迭代,但是您也可以使用不同的数值。
[mw_shl_code=applescript,true]_thread.start_new_thread(threadFunction, ("Thread test function", 5))[/mw_shl_code]
完整的源代码如下所示。
[mw_shl_code=applescript,true]import _thread
def threadFunction(description, count):
print(description)
i = 0
while i < count:
print("Iteration: " + str(i) )
i=i+1
_thread.start_new_thread(threadFunction, ("Thread test function", 5))[/mw_shl_code]
测试代码
将代码上传到ESP32并运行即可对代码进行测试。代码执行之后,您将在MicroPhthon控制台上看到类似图1的输出结果,其中包括线程描述字符串以及循环每次迭代的输出。正如预料,线程函数执行了5次循环迭代,每次迭代打印一条消息。
图1 - 脚本代码输出结果。
注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。 他写了很多有关ESP32、ESP8266的有用的教程和项目。
查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程汇总贴
|