完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
转载 学习
相比较而言,STM32F407的RTC比STM32F1的更加容易配置。当然,F4的资源相对也就更加丰富很多了。具体的资源可查看官方参考手册,通过下面的图表也可以了解其大致功能 1、开始的时候对于 ALRAM A/B的功能没有怎么理解,后面再来看时发现其很简单,举个简单的例子,就比如,定的闹钟,当然,这个也是可以实现闹钟的功能。只是通过这个简单的例子来说明,ALARM A/B的用途或者功能吧 2、自动唤醒与时间戳及时间篡改事件,与1的差不多,细细体会就知道 3、RTC_AFO 与 RTC_AFI 就是对外输出及检测外部时间事件 4、 RTC的时钟源一般情况下,是使用LSE ,通过适当的分频产生一个1HZ的时钟,分频中有2个关键点,就是 异步分频因子(7bit)和同步分频因子(15bit),两者配置会影响功耗,官方建议配置异步分频因子为较高值,以减少功耗,这里采用最大值配置方式: SynchPrediv = 0xFF; AsynchPrediv = 0x7F;这样时钟就配置OK了 5、下面看一下RTC的初始化和配置,个人认为只要这里搞懂了,RTC也就懂了,至于自动唤醒、ALARM等都是很容易配置,更何况ST库函数已经写好了,直接调用相关函数就可。 1) 首先要知道 RTC的寄存器是具有写保护功能的,因此在每次对其进行写操作前,就要先退出写保护,这里很直白的告诉我们,就是依照这个顺序操作,分别对RTC_WPR 写入 0xCA 和 0x53 就可解除写保护,注意顺序不可变。其下,还有一句话,写一个错键重新激活写保护,就是随便写一个与上面2个不同的,就可再次激活写保护功能 6、 对于具体如何设置具体值就不讲了,官方库中 RTC_Settime() /RTC_SetDate() 等函数可以很容易的实现。 7、最后将一下 RTC的备份寄存器 ,备份寄存器的作用顾名思义就是备份,其总共有20个相关寄存器,举一个简单的例子就可以明白其作用,比如我们要初始化设置RTC的相关值,第一次的时候我设置了一次,当我复位MCU,RTC还在正常运行,我并不需要重新设置RTC,这时候,我们可以在要设置RTC的时候,添加一个判断条件,就是如果我选择的备份寄存器中填入一个值,如果我独到的值和我要写的值一致,我就不重新设置RTC,如果不一致我就重新设置。当然这个值是随意设置的。 如官方例程: if (RTC_ReadBackupRegister(RTC_BKP_DR0) != 0x32F2) //判读读到的值是否与设置的一致 { 。。。。 RTC_WriteBackupRegister(RTC_BKP_DR0, 0x32F2); //设置完成后,给备份寄存器写入一个值 } 8、至此,介绍就结束了,主要还是看参考手册,当然,官方的库已经给大家省去了很多功能,但是从寄存器层面去了解如何操作的也是相当的必要。 |
|
相关推荐
|
|
2234 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2053 浏览 3 评论
4664 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2197 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2734 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:42 , Processed in 0.677990 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号