BKPUNIX

devtools/2024/10/18 22:30:54/

  ·第二条等待寄存器同步,可以参考前边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/devtools/22676.html

相关文章

Java项目启动检测 Redis 是否启动,未启动则启动(macOS 版本)

文章目录 一、概述二、代码 一、概述 启动项目时,检测macos 上 Redis 是否启动,未启动,则启动。 二、代码 /*** 用途: 项目启动时检查 redis,未启动则启动(开发环境)** author: ADAM* create: 2024/04/2…

【线性代数】[第五章:特征值与特征向量][自用]

1 知识点 1.1特征值与特征向量 1.1.1 特征值与特征向量 (1)定义 1.1.2 特征方程和特征多项式 (1) (2)n阶矩阵有n个特征值,里面可以重复,即有重根。 1.1.3 特征值和特征向量的性质 (1)特征值性质: (2)特征向量性质: 特征向量具有稳定性。如果两个向量都满足Ax=λ…

HTMLCSS

HTML 介绍 HTML是一门语言,所有的网页都是用HTML这门语言编写出来的HyperText Markup Language 超文本标记语言超文本:超越文本的限制,除了文字信息,还可以定义图片,音频,视频等内容标记语言:由…

测试工程师面试准备(软硬件)

您好,我叫XXX。学历XX,XXX专业毕业。X年X月份毕业,但是去年二月份已经找到工作开始实习了,目前工作一年了,这一年的过程中我主要负责软件的开发和测试和软硬件联调测试工作。具体来说就是,在软件开发完成后…

三维点云处理-聚类(上)

聚类(Cluster)是数据处理中常用的一种分析方法,聚类的目标是将相似的数据对象划分到同一个簇中,使得同一簇内的数据对象的相似性尽可能大,而不同簇中的数据对象的差异性也尽可能大。  这里主要是介绍两种比较经典的聚…

计算机网络 2.4差错检验与校正

第四节 差错检验与校正 一、认识检验与校正 1.差错形成原因 内部因素(随机错):噪声脉冲、脉动噪声、衰减、延迟失真等。 外部因素(突发错):电磁干扰、太阳噪声、工业噪声等。 2.差错控制编码分类&#…

全新突破:「Paraverse平行云」实现3D/XR企业级应用全面接入Apple Vision Pro

在前不久举行的GTC开发者大会上,英伟达引领行业风向,宣布其Omniverse平台能够助力企业将3D/XR应用流畅传输至Apple Vision Pro混合现实头显。在英伟达与苹果这两大科技巨头的合作下,此举标志着3D/XR技术迈向新纪元的关键一步。「Paraverse平行云」实时云…

Java基础知识总结(78)

/** * 线程加锁 */ public class SynchronizedDemo2 { //静态成员变量 在主内存中 static int i; //静态成员方法 public static void add(){ synchronized (SynchronizedDemo2.class){ i; } } public static void main(String[] args) throws InterruptedException { Thread t…