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

摘要:
介绍了_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的调用,即只显示时间。

 

 

相关推荐

  1. 02_c++线_this_thread

    2024-01-19 18:54:02       54 阅读
  2. C++之线(multi-thread

    2024-01-19 18:54:02       71 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 18:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 18:54:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 18:54:02       82 阅读
  4. Python语言-面向对象

    2024-01-19 18:54:02       91 阅读

热门阅读

  1. Python os模块

    2024-01-19 18:54:02       52 阅读
  2. Docker修改默认根目录(含镜像位置)

    2024-01-19 18:54:02       52 阅读
  3. CLion指定远程编译目录

    2024-01-19 18:54:02       50 阅读
  4. 华纳云:搭建网盘服务器需要哪些技术支持?

    2024-01-19 18:54:02       51 阅读
  5. HTML中div内容垂直居中显示

    2024-01-19 18:54:02       53 阅读
  6. Vue的event-bus的js代码以及event-bus实现总结

    2024-01-19 18:54:02       50 阅读
  7. C#设计模式教程(3):抽象工厂模式

    2024-01-19 18:54:02       55 阅读