STM32 RTC3混合模式:写入TR重置SSR

问题描述 投票:0回答:1

一些新的 STM32 芯片包含二进制 RTC 模式,例如,该模式用于示例中的 LoRaWAN 堆栈计时。 RTC 可以在混合模式下运行,其中二进制部分(32 位向下计数亚秒寄存器 SSR)和经典 BCD 日历模式都可以运行。

这工作得很好,直到我尝试使用 HAL_RTC_SetTime 设置 BCD 日历时间部分。

事实证明,一旦RTC->TR被写入,RTC->SSR就被重置为0xFFFFFFFF。 由于二进制模式支持的所有定时器都依赖于 SSR,因此它们会失败。

我尝试备份SSR并在RTC->TR写入后回写,但它似乎是只读的。

我错过了什么吗?如果引入了混合模式,我怀疑正常行为是无法在不影响二进制模式部分的情况下再设置 BCD 部分。

arm embedded stm32 real-time-clock
1个回答
0
投票

好吧,这似乎是设计使然。 RTC 初始化模式退出后,SSR 复位:

https://community.st.com/t5/stm32-mcus-products/stm32-rtc3-mixed-mode-writing-tr-resets-ssr/m-p/655899/highlight/true#M239486

© www.soinside.com 2019 - 2024. All rights reserved.