一. 延时和计时
使用time模块:
import time
time.sleep(1) # sleep for 1 second
time.sleep_ms(500) # sleep for 500 milliseconds
time.sleep_us(10) # sleep for 10 microseconds
start = time.ticks_ms() # get millisecond counter
delta = time.ticks_diff(time.ticks_ms(), start) # compute time difference
这些延时是阻塞式延时, 后续程序需要等待其完成
二. 计时器
ESP32端口有四个硬件计时器。使用machine.Timer类,其计时器ID为0到3(包括3):
from machine import Timer
tim0 = Timer(0)
tim0.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(0))
tim0.deinit()
tim1 = Timer(1)
tim1.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(1))
tim1.deinit()
这些延时是计数器延时, 不会阻塞其他程序
下面这个例子能够很好的看出这一点
import time
from machine import Timer
tim0 = Timer(0)
tim0.i