1.3 utime 时间相关功能 API 手册#

该模块实现了部分 CPython 模块的功能子集,具体如下所述。更多详细信息,请参考 CPython 原始文档:time

utime 模块提供获取当前时间与日期、测量时间间隔以及延迟操作的相关功能。

纪元时间:Unix 系统移植版本使用 1970-01-01 00:00:00 UTC 作为 POSIX 系统的标准纪元时间。

维护实际日历日期/时间:这需要使用实时时钟(RTC)。在运行底层操作系统(包括部分实时操作系统,RTOS)的系统上,RTC 可能默认启用。设置和维护实际日历时间的工作由操作系统或 RTOS 负责,并且是在 MicroPython 之外完成的,MicroPython 只通过操作系统的 API 查询日期和时间。

函数#

ntp_sync#

utime.ntp_sync()

当系统联网后,调用该函数可以从互联网同步当前时间。函数返回 TrueFalse,表示同步是否成功。某些开发板不支持 RTC 模块,因此该函数在这些板上总是返回 False

localtime#

utime.localtime([secs])

将自纪元以来以秒为单位的时间转换为 8 元组,包含以下信息:(年,月,日,小时,分钟,秒,工作日,yearday)。如果未提供秒数,则返回来自 RTC 的当前时间。

  • 年份包含世纪(如 2014 年)

  • 月份范围为 1-12

  • 日(mday)范围为 1-31

  • 小时范围为 0-23

  • 分钟范围为 0-59

  • 秒范围为 0-59

  • 工作日范围为 0(周一)至 6(周日)

  • yearday 范围为 1-366

mktime#

utime.mktime(tuple)

该函数是 localtime() 的逆函数。它接受一个 8 元组,表示本地时间,并返回自 1970-01-01 00:00:00 以来的秒数。

sleep#

utime.sleep(seconds)

延迟执行指定的秒数。部分开发板支持以浮点数传入秒数,以实现亚秒级的延迟。不过,为确保兼容性,推荐使用 sleep_ms()sleep_us() 函数来处理毫秒和微秒级的延迟。

sleep_ms#

utime.sleep_ms(ms)

延迟指定的毫秒数。

sleep_us#

utime.sleep_us(us)

延迟指定的微秒数。

ticks_ms#

utime.ticks_ms()

返回一个递增的毫秒计数器,参考点为系统内部的任意时间点,该计数器会在某个值后回绕。

ticks_us#

utime.ticks_us()

ticks_ms() 类似,但返回的是微秒级计数。

ticks_cpu#

utime.ticks_cpu()

提供最高分辨率的计数器,通常与 CPU 时钟相关,用于高精度基准测试或紧凑的实时循环。

ticks_add#

utime.ticks_add(ticks, delta)

根据指定的时间增量(delta,可以为正或负数)计算新的 ticks 值,用于设定任务的截止时间等。

ticks_diff#

utime.ticks_diff(ticks1, ticks2)

计算两个 ticks 值之间的差异,支持处理计数器回绕。

time#

utime.time()

返回自纪元以来的秒数,前提是已设置 RTC。如果未设置 RTC,则返回自系统上电或复位以来的秒数。

ticks#

utime.ticks()

等同于 utime.ticks_ms()

clock#

utime.clock()

返回一个 clock 对象,用于时间测量和 FPS 计算。

clock#

构造函数#

utime.clock()

方法#

tick#

clock.tick()

记录当前时间(毫秒),可用于 FPS 计算。

fps#

clock.fps()

根据上一次 clock.tick() 调用后的时间间隔,计算帧率(FPS)。

示例:

import utime
clock = utime.clock()
while True:
    clock.tick()
    utime.sleep(0.1)
    print("fps = ", clock.fps())

reset#

clock.reset()

重置所有计时标记。

avg#

clock.avg()

计算每帧的平均时间消耗。