微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32F1xx通过stm32cubeMX配置RTC心得

STM32F1xx通过stm32cubeMX配置RTC心得

时间:10-02 整理:3721RD 点击:
F1xx的RTC只是一个简单的32位计数器,其他系列的则是比较正统的RTC了;
在使用STM32CubeMX配置RTC过程中遇到几个问题。
1、自动配置后,每次上电都会重新初始化时间,所以这里需要自己修改一下初始化配置函数,使用BKP_REG_DR*设置标志位;
2、使用自动配置,初始化时间必须使用RTC_FORMAT_BCD,原因是库函数存在bug,如果使用RTC_FORMAT_BIN,月份配置会出错,比如说11月,配置时会赋值为RTC_MONTH_NOVEMBER,而此宏定义值为0x11,也就是说其十进制值为17,使用HAL_RTC_SetDate时,如果使用RTC_FORMAT_BIN模式会直接赋值而没有转换,导致出现月份配置错误。
3、使用F1的RTC,只能实时记录time,而不能实时记录date,date是在获取时间时(HAL_RTC_GetTime)通过函数RTC_DateUpdate自动更新在ram中的,掉电之后date就没了,所以需要间隔性的去记录当前的date。下次上电时根据BKP_REG的值,决定是否读取记录的date值,赋值给hrtc结构体DateToUpdate成员,这样日期也就不会丢失了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top