class RTC -- 实时时钟

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

示例用法:

rtc = pyb.RTC()
rtc.datetime((2014, 5, 1, 4, 13, 0, 0, 0))
print(rtc.datetime())

构造函数

class pyb.RTC

创建一个 RTC 对象。

方法

datetime(datetimetuple: Tuple[int, int, int, int, int, int, int, int] | None = None) Tuple[int, int, int, int, int, int, int, int] | None

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

不带参数时,此方法返回包含当前日期和时间的 8 元组。带 1 个参数(一个 8 元组)时,它会设置日期和时间(并将 subseconds 重置为 255)。

8 元组的格式如下:

(year, month, day, weekday, hours, minutes, seconds, subseconds)

weekday 为 1-7,对应周一到周日。

subseconds 从 255 倒计数到 0。

wakeup(timeout: int | None, callback: Callable[[RTC], None] | None = None) None

设置 RTC 唤醒定时器,使其每隔 timeout 毫秒重复触发一次。此触发可将开发板从两种睡眠状态中唤醒:pyb.stop()pyb.standby()

如果 timeoutNone,则唤醒定时器被禁用。

如果提供了 callback,则在唤醒定时器每次触发时执行它。callback 必须恰好接受一个参数 —— 触发该唤醒的 RTC 实例。

info() int

获取关于启动时间和复位来源的信息。返回的 32 位整数是一个按位打包的值:

含义

0x0000FFFF

RTC 启动所用的毫秒数。

0x00010000

如果发生了上电复位则置位。

0x00020000

如果发生了外部复位则置位。

calibration(cal: int | None = None) int | None

获取或设置 RTC 平滑校准值。

不带参数时,calibration() 返回当前的校准值,为 [-511, 512] 范围内的整数。带一个参数时,它会设置校准值。

平滑校准机制通过在 32 秒周期内(2^20 个时钟节拍)从 32768 Hz 时钟中增加或减少给定数量的节拍,来调整 RTC 时钟速率。每个正节拍使时钟加快 2^20 分之一(约 0.954 ppm);负值则按每节拍相同的量减慢时钟。因此可用的校准范围约为 -487.5 ppm+488.5 ppm