class RTC – 实时时钟

RTC 是一个独立的时钟,用于跟踪日期和时间。

示例用法:

rtc = machine.RTC()
rtc.datetime((2020, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())

构造

class machine.RTC(id=0, ...)

创建一个 RTC 对象。有关初始化的参数,请参见 init 方法。

方法

RTC.datetime([datetimetuple])

获取或设置 RTC 的日期和时间。

没有参数时,此方法返回一个包含当前日期和时间的8元组。带有1个参数(是一个8元组)时,它设置日期和时间。

8 元组具有以下格式:

(年, 月, 日, 星期, 小时, 分钟, 秒, 子秒)

subseconds 字段的含义依赖于硬件。

RTC.init(datetime)

初始化RTC。Datatime是以下形式的元组:

(年, 月, 日[, 小时[, 分钟[, 秒[, 微秒[, 时区信息]]]]])

RTC.now()

获取当前的日期时间元组。

RTC.deinit()

将 RTC 重置为 2015 年 1 月 1 日的时间,并重新开始运行。

RTC.alarm(id, time, *, repeat=False)

设置 RTC 警报。时间可以是毫秒值,以便将警报编程为当前时间 + 未来的 time_in_ms,或者是一个 datetimetuple。如果传递的时间是以毫秒为单位的,可以将 repeat 设置为 True 以使警报周期性地响起。

RTC.alarm_left(alarm_id=0)

获取警报过期前剩余的毫秒数。

RTC.cancel(alarm_id=0)

取消正在运行的警报。

RTC.irq(*, trigger, handler=None, wake=machine.IDLE)

创建由实时时钟警报触发的irq对象。

  • trigger 必须是 RTC.ALARM0

  • handler 是触发回调时要调用的函数。

  • wake 指定此中断可以唤醒系统的睡眠模式。

RTC.memory([data])

RTC.memory(data)data 写入 RTC 内存,其中 data 是支持缓冲区协议的任何对象(包括 bytesbytearraymemoryviewarray.array)。RTC.memory() 读取 RTC 内存并返回一个 bytes 对象。

写入 RTC 用户内存的数据在重启后保持持久,包括 machine.soft_reset()machine.deepsleep()

默认情况下,ESP32 上的 RTC 用户内存最大长度为 2048 字节,ESP8266 上为 492 字节。

可用性:ESP32、ESP8266 端口。

常量

RTC.ALARM0

irq触发源