class RTC – 实时时钟

该类提供获取设置rtc时间方法,对于BC25PA平台起到从深休眠或者软件关机状态唤醒模组的功能。

构造函数

machine.RTC

class machine.RTC()

示例:

>>> # 创建RTC对象
>>> from machine import RTC
>>> rtc = RTC()

方法

rtc.datetime

rtc.datetime([year, month, day, week, hour, minute, second, microsecond])

该方法用于设置或获取RTC时间。不带参数时,用于获取时间,带参数则是设置时间;设置时间时,参数week不参与设置,microsecond参数保留,暂未使用,默认是0。

参数描述:

  • year - 年,int类型。
  • month - 月,int类型,范围[1 ~ 12]。
  • day - 日,int类型,范围[1 ~ 31]。
  • week - 星期,int类型,范围[0 ~ 6],其中0表示周日,[1 ~ 6]分别表示周一到周六;设置时间时,该参数不起作用,保留;获取时间时该参数有效。
  • hour - 时,int类型,范围[0 ~ 23]。
  • minute - 分,int类型,范围[0 ~ 59]。
  • second - 秒,int类型,范围[0 ~ 59]。
  • microsecond - 微秒,int类型,保留参数,暂未使用,设置时间时该参数写0即可。

返回值描述:

获取时间时,返回一个元组,包含日期时间,格式如下:
[year, month, day, week, hour, minute, second, microsecond]

设置时间时,设置成功返回整型值0,设置失败返回整型值-1

示例:

>>> from machine import RTC
>>> rtc = RTC()
>>> rtc.datetime()
(2020, 9, 11, 5, 15, 43, 23, 0)
>>> rtc.datetime([2020, 3, 12, 1, 12, 12, 12, 0])
0
>>> rtc.datetime()
(2020, 3, 12, 4, 12, 12, 14, 0)

rtc.set_alarm

rtc.set_alarm(data_e)

该方法用于设置RTC到期时间,时间到期就会调用注册的回调函数。

参数描述:

  • year - 年,int类型。
  • month - 月,int类型,范围[1 ~ 12]。
  • day - 日,int类型,范围[1 ~ 31]。
  • week - 星期,int类型,范围[0 ~ 6],其中0表示周日,[1 ~ 6]分别表示周一到周六;设置时间时,该参数不起作用,保留;获取时间时该参数有效。
  • hour - 时,int类型,范围[0 ~ 23]。
  • minute - 分,int类型,范围[0 ~ 59]。
  • second - 秒,int类型,范围[0 ~ 59]。
  • microsecond - 微秒,int类型,保留参数,暂未使用,设置时间时该参数写0即可。

返回值描述:

设置成功返回整型值0,设置失败返回整型值-1

该方法支持平台EC600U/EC200U/EC600N/EC800N/BC25。

示例:

>>> data_e=rtc.datetime()
>>> data_l=list(data_e)
>>> data_l[6] +=30				
>>> data_e=tuple(data_l)
>>> rtc.set_alarm(data_e)
0

rtc.register_callback

rtc.register_callback(callback)

该方法用于注册RTC alarm回调处理函数。

参数描述:

  • callback - RTC alarm回调处理函数,function类型,原型为callback(arg),arg未实际使用,可直接传入None

返回值描述:

注册成功返回整型值0,注册失败返回整型值-1

该方法支持平台EC600U/EC200U/EC600N/EC800N/BC25。

rtc.enable_alarm

rtc.enable_alarm(on_off)

该方法用于打开/关闭RTC alarm功能。

参数描述:

  • on_off - 1表示打开RTC alarm功能,0表示关闭RTC alarm功能,int类型。

返回值描述:

打开/关闭成功返回整型值0,打开/关闭失败返回整型值-1

该方法支持平台EC600U/EC200U/EC600N/EC800N/BC25,BC25PA平台只有设置回调函数,才能启动定时器。

示例:

from machine import RTC
rtc = RTC()
def callback(args):
   print('RTC alarm')

rtc.register_callback(callback)
rtc.set_alarm([2021, 7, 9, 5, 12, 30, 0, 0])
rtc.enable_alarm(1)

EC600U/EC200U平台支持自动开机,即设置alarm功能之后将模块关机,alarm时间到了之后可以自动开机。其他平台不支持该特性。