打印
[AT32A403A]

AT32F403A基于V2库 rtc日历功能

[复制链接]
642|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2023-10-17 15:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
概述
         本文主要是使用AT32F403A开发板,基于V2库实现rtc的日历功能。

         串口工具使用的Atlink-ez自带的串口功能.

         工程建立、调试工具配置在前面章节有详细介绍。

硬件
         硬件方面使用的是参考官方AT32F437 SURF板子而设计的一个AT32F403A开发板,板子上的芯片是AT32F403AVGT7的型号,开发板上面还板载了一个atlink-ez的仿真器,atlink-ez除了可以在线仿真和下载之外还有一个串口的功能,硬件上是通过跳线帽接到了MCU的串口1,pa9/10上面。

        如下图是开发板pcb图,以及硬件资源。(左边上角的就是atlink-ez,用usb线接到pc即可):



         如下为实物图:



         本章是rtc日历功能的测试,属于内部资源,使用到了外部低速时钟,外部低速时钟原理图:



RTC
         实时时钟用于日历时钟功能,内部为一个 32 位递增计数器,通常使用中该计数器 1 秒增加 1,也就是该 计数器相当于秒钟,然后根据当前的秒钟值,通过转换得到时间和日期,实现日历的功能,修改计数器的 值便可修改时间和日期。 RTC计数逻辑位于电池供电域,只要 VBAT 有电,RTC 便会一直运行,不受系统复位以及 VDD 掉电影响。

         主要特性:

                20 位预分频器。

                32 位计数器,用于时间计数。

                3种不同时钟源:HEXT/128、LEXT、LICK

                3个中断:秒中断、闹钟中断、溢出中断

          注:RTC 时钟的频率必须小于 PCLK1 时钟频率的四分之一。

软件
        上电复位后所有 RTC 寄存器处于写保护状态,需要先解除写保护,才能写 RTC 寄存器,所以需要先解锁,然后对rtc寄存器进行配置。配置包括时钟配置,以及时间设置。时钟方面使用的外部低速晶振32.768k,然后设置时钟分频系数为32768,那么rtc的工作频率就是1hz,那么计数寄存器的值自加1就是1s的时间。

        解锁步骤:
                使能电源和电池供电域接口时钟,解锁电池供电域写保护。

        配置过程:
                 1. 等待寄存器同步完成(CFGF 位置 1)。

                 2. 进入配置模式(CFGEN 位置 1)。

                 3. 根据需要配置相关 RTC 寄存器。

                 4. 退出配置模式将(CFGEN 清 0)。

                 5. 等待寄存器同步完成(CFGF 位置 1)。

        初始化代码:


测试
        测试代码
        初始化设置初始时间为2023.08.01, 10:51:0,主循环中获取秒的状态,然后获取rtc的时间并打印出来。



        测试结果
        把串口助手的时间截打开,可以看到确实是每秒打印一次,测试通过。


————————————————
版权声明:本文为CSDN博主「qi_feng_le」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qi_feng_le/article/details/132161295

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1903

主题

15576

帖子

11

粉丝