当前位置: 首页 > article >正文

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))


在这里插入图片描述


http://www.kler.cn/a/153728.html

相关文章:

  • 【数据结构】循环链表和双向链表
  • redis单线程为什么这么快
  • CentOS系统环境搭建(二十三)——运行Java服务
  • 带你用uniapp从零开发一个仿小米商场_10.开发一个占剩余窗口的滚动区域
  • spring boot 3.2.0 idea从零开始
  • Synchronized原理分析
  • syslog定期rotate和限制其size的配置方法ubuntu上
  • 如何使用torchrun启动单机多卡DDP并行训练
  • opencv2.4 android编译
  • 内存免杀--
  • ubuntu18编译Android8的Failed to contact Jack server问题
  • 激光SLAM:Faster-Lio 算法编译与测试
  • python+pytest接口自动化(6)-请求参数格式的确定
  • LeetCode56. 合并区间
  • FL Studio2024重磅更新 带你了解FL21.2最新版本功能
  • C语言 柔性数组
  • RK3568笔记六:基于Yolov8的训练及部署
  • LCR 047. 二叉树剪枝 和 leetCode 1110. 删点成林 + 递归 + 图解
  • CentOS 系列:CentOS 7 使用 virt-install + vnc 图形界面/非图形界面 创建虚拟机
  • clickhouse的向量化执行