我正在阅读
STM32F091 的参考手册,尤其是 RTC 章节。
然后我查看了 CubeIDE 生成的(全部设置为 LL,而不是 HAL)初始化代码的作用。
因此它具有此函数 SystemClock_Config(),其中配置了所有时钟。
那里:
- 启用备份访问(在 PWR->CR 中设置 DBP)
- 重置备份域(在 RCC->BDCR 中设置然后清除 BDRST)
- 将时钟源设置为HSI(BDCR 中的 RTCSEL 位),因为我没有外部时钟晶体
- 启用 RTC(在 RCC->BDCR 中设置 RTCEN)
根据我从手册中获取的信息,2. 将
清除备份寄存器。
因此,如果我想将它们用作应用程序和引导加载程序之间的
通信方法,我需要修改它以不这样做 - 如果我确定,那么,究竟是什么?
我还不清楚。
在系统重置/甚至关闭/打开
电源(同时 VBAT 仍处于缓冲状态)之后,RTC 的任何部分是否仍会启用?即我可以检查任何寄存器标志以确定我不需要进行备份域重置吗?
上述程序的哪一部分还需要完成?
这是否会因使用外部时钟晶体或使用内部 RC 振荡器而改变?在我看来,后者在 VDD 关闭时不会运行,但如果使用外部振荡器
电路,只要 VBAT 有足够的功率,振荡器电路仍将运行 - 我猜 RTC 东西需要一个时钟,好吧当然至少是时钟功能。可能不只是为了保存寄存器内容?