第三十七章 AT32F403A基于V2库 rtc日历功能

目录

概述

硬件

RTC

软件

        解锁步骤:

        配置过程:

        初始化代码:

测试

        测试代码

        测试结果

最后


概述

         本文主要是使用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的时间并打印出来。

        测试结果

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

最后

        有问题的可以加QQ群技术交流,同时相关代码上传到QQ群中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值