Micropyth关于_thread(多线程)开发的二次应用

发布时间:2024年01月19日

摘要:
介绍了_thread(多线程)的基础讲解,这次将结合UART(串口)开进行开发应用讲解。串口在日常的设计中是一个非常常见的东西,所以熟练掌握是基本知识。下面,就来介绍一下关于串口与_thread 结合的一个小程序。下面是所需要准备的东西。

硬件设计:
Rasspberry Pi Pico开发板(应用Micropython开发)
USB转TTL开发板
软连线

上面显示了其连线示意图。

演示代码:

思路:当程序运行时,在串口发送字符,其显示温度,若不发送字符时,其显示时间参数,时间参数显示在程序行窗口。

import _thread
import machine
import utime
from machine import UART,Pin,ADC
 
temp = ADC(4)
uart = UART(0,baudrate = 115200,bits = 8,parity = None,stop = 1,tx = Pin(0),rx = Pin(1))
led = Pin(25,Pin.OUT)
gLock = None
 
//温度显示
def temperate():
    
    read_temp_voltage = temp.read_u16()*3.3/65535
    temperature = 27-(read_temp_voltage-0.706)/0.001721
    uart.write('Temperature {}\n'.format(temperature))
 
//显示时间
def data():
    print(utime.localtime())
 
def main():
    print('---------Start Progarm-----------\n')
    utime.sleep(1)
    print('-----请输入任意字符,以显示温度----\n')
    while True:
        gLock = _thread.allocate_lock()
        gLock.acquire()
        if uart.any() :
             print('Echo String:{}'.format(uart.readline().decode()))
             _thread.start_new_thread(temperate,())
             utime.sleep(2)     
             led.value(1)
        else:
             print('------当前时间为如下所示-------')
             _thread.start_new_thread(data,())
             utime.sleep(2)
        gLock.release()
         
if __name__ == '__main__':
    main()

示例结果:

?

?

?

我们在串口软件中输入任意字符,都将会引发进程,从而调用温度显示模块,从而将温度显示在串口界面。

当我们串口不发送字符时,我们会得到以下结果,其只进行线程2的调用,即只显示时间。

?

?

文章来源:https://blog.csdn.net/2301_81461100/article/details/135641956
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。