MicroPython STM32F4 RTC功能使用介绍

MicroPython STM32F4 RTC功能使用介绍

  • STM32和ESP32 RTC功能差不多,相关篇《MicroPython ESP32 RTC功能使用介绍》
  • 固件刷可参考前面一篇《STM32刷Micropython固件参考指南》
  • 相关篇《Micropython STM32F4入门点灯》
  • 固件下载:https://micropython.org/download/?mcu=stm32f4
  • 本例程基于STM32F4DISC,主控芯片STM32F407VGT6,使用固件版本:MicroPython v1.20.0 on 2023-04-26
  • mpy RTC功能,可以参考Micropython官方开发参考文档:https://docs.micropython.org/en/latest/pyboard/quickref.html#rtc-real-time-clock
  • 开发平台基于Thonny

RTC属于mpy模块中的类

>>> from pyb import RTC
>>> help(RTC)
object <class 'RTC'> is of type type
  init -- <function>
  info -- <function>
  datetime -- <function>
  wakeup -- <function>
  calibration -- <function>
  • RTC.wakeup(timeout, callback=None):配置RTC唤醒定时器设置,为每毫秒重复触发一次。此触发器可以将 pyboard 从睡眠状态唤醒pyb.stop()和 pyb.standby()。如果timeout=None,则唤醒定时器被禁用。带参数,则在每次触发时执行唤醒定时器。 唤醒回调函数:callback
  • rtc.init() :配置为系统默认的一个出厂时间。
  • rtc.datetime() :如果不带参数则是获取时间(元组)。带参数则是设置时间。(年、月、日、工作日、小时、分钟、秒、亚秒)
  • rtc.info():获取有关启动时间和重置源的信息。
  • 较低的0xffff是 RTC 花费的毫秒数 启动。
  • 如果发生上电复位,则设置位 0x10000。
  • 如果发生外部复位,则设置位 0x20000
  • rtc.calibration (cal):获取或设置 RTC 校准。
  • 不带参数,calibration() 返回当前校准值,它是 [-511 : 512] 范围内的整数。用一个参数设置 RTC 校准。
  • 带参数,RTC 平滑校准机制通过在 32 秒周期内(对应于 2^20 个时钟滴答)从 32768 Hz 时钟中添加或减去给定数量的滴答来调整 RTC 时钟速率。添加的每个滴答将使时钟加快 1 部分2^20 或 0.954 ppm;同样,RTC 时钟也减慢了负值。可用的校准范围是:(-511 * 0.954) ~= -487.5 ppm 到 (512 * 0.954) ~= 488.5 ppm

RTC测试代码

from pyb import RTC
import time
# 定义星期数组
weekdays = ['Sunday','Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
rtc = RTC()
rtc.datetime((2023, 11, 28, 2, 21, 10, 15, 0)) # set a specific date and time

if __name__ == '__main__':   
    while True:
        # Get the current time from the RTC
        current_time = rtc.datetime()
        print(current_time) # get date and time
        time.sleep(1)
        year, month, day,weekday, hour, minute, second,  yearday = rtc.datetime()
        # 获取星期对应的数组成员
        weekday_name = weekdays[weekday]
        print("当前时间:{}-{}-{} {}:{}:{} Week:{}".format(year, month, day, hour, minute, second,weekday_name))


MicroPython STM32F4 RTC功能使用介绍_第1张图片

你可能感兴趣的:(#,Micropython,for,STM32,stm32,mpy)