BKPUNIX

ops/2024/9/25 15:21:10/

  ·第二条等待寄存器同步,可以参考前边RTC框图部分。在图中可以看到有两个时钟,PCLK1和RTCCLK,PCLK1在主电源掉电时会停止,为了保证RTC主电源掉电正常工作,RTC里的寄存器都是在RTCCLK同步下进行变更的。当用PCLK驱动的总线去读取RTCCLK驱动的寄存器时,会有时钟不同步的问题,RTC寄存器只有在RTCCLK上升沿更新,但是PCLK1的频率36MHz远大于RTCCLK的频率32KHz,如果在APB1刚开启时就立刻读取RTC寄存器,有可能RTC寄存器还没有更新到APB1总线上,这样读到的值就是错误的,通常读取到是0。

        所以在APB1总线刚开启时要等一下RTCCLK,只要RTCCLK来一个上升沿,RTC把他寄存器的值同步到APB1总线上,后续读写的值都是没问题的。只需要在初始化的时候调用一个等待同步的函数即可

        ·第三条设置CNF位,RTC会有一个进入配置模式的标志位,把这一位置1才能设置时间。这个操作在库函数中,每个写寄存器的函数都自动加上了这个操作,无需再次手动调用函数进入配置模式       

        ·第四条注意事项,只需要调用一个等待函数即可,类似于读写Flash芯片,写入之前需要先等待,如果上一次的写入还没完成,不能写入下一次。每次写入之后要等待RTOFF为1,只有RTOFF为1才代表写入完成。

        这个操作的原因是PLCK和RTCCLK的时钟频率不一样,用PCLK的频率写入之后,这个值还不能立刻更新到RTC的寄存器里,因为RTC寄存器时由RTCCLK驱动的,PCLK写完之后需要等待RTCCLK的时钟,RTCCLK来一个上升沿,值更新到RTC寄存器里,才完成整个写入过程。


http://www.ppmy.cn/ops/29299.html

相关文章

Java线程池的七大参数说明

线程池中的七大参数如下: (1)corePoolSize:线程池中的常驻核心线程数。 (2)maximumPoolSize:线程池能够容纳同时执行的最大线程数,此值大于等于1。 (3)keepAl…

“Transformer挑战者”-Mamba之最全详解图解

-------------------------------------------------------------------------------------------------------------------- 1.AIGC未来发展前景 未完持续… 1.1 人工智能相关科研重要性 拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票&a…

jvm面试题30问

什么是JVM的跨平台? 什么是JVM的语言无关性? 什么是JVM的解释执行 什么是JIT? JIT:在Java编程语言和环境中,即时编译器(JIT compiler,just-in-time compiler)是一个把Java的字节码(…

【智能算法】鹦鹉优化算法(WO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2024年,J Lian等人受到鹦鹉学习行为启发,提出了鹦鹉优化算法(Parrot Optimizer, PO)。 2.算法原理 2.1算法思想 PO灵感来自于在驯养的鹦鹉中观察到的…

扭蛋机小程序带来了什么优势?扭蛋机收益攻略

在当下的潮流消费时代,人们对潮玩也日益个性化,扭蛋机作为一种新型的娱乐消费模式,深受大众喜爱。扭蛋机的价格低,各个年龄层的玩家都可以进行购买,潜在玩家量非常大。扭蛋机商品主打热门IP周边等,种类繁多…

MATLAB初学者入门(21)—— 霍夫曼树

霍夫曼编码是一种广泛用于数据压缩的有效技术。它基于字符频率或概率来构造最优的前缀码,使得常用字符的编码长度较短,不常用的字符编码长度较长,从而达到压缩数据的目的。MATLAB中可以通过一系列步骤来实现霍夫曼树的构建和相应的编码过程。…

Springboot自定义注解+aop实现redis自动清除缓存功能

假如我们是一个商家,我们在管理端 设置好菜品之后,每次不同的用户访问我们的菜品,都要查询数据库,当访问者多的时候,会造成数据库的卡顿,所以使用redis进行缓存,这样只需要读取一次数据库&#…

【数据结构】链表专题3

前言 本篇博客我们继续来讨论链表专题,今天的链表算法题是经典中的经典 💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 目录 1.判断链表是否…