调用库函数读出的数据为零。后来发现,是因为我用的是stm8l052c6t6。stm8l052c6 没有ss_rx寄存器不能读亚秒.
uint16_t RTC_GetSubSecond(void)//stm8l052c6 没有ss_rx寄存器不能读亚秒
{
uint8_t ssrhreg = 0, ssrlreg = 0;
uint16_t ssrreg = 0;
/* Get subseconds values from the correspondent registers*/
ssrhreg = RTC->SSRH;
ssrlreg = RTC->SSRL;
/*read DR3 register to unfroze calender registers */
(void) (RTC->DR3);
/* Clear RSF flag by writing 0 in RSF bit通过在RSF位中写入0来清除RSF标志 */
RTC->ISR1 &= (uint8_t)~(RTC_ISR1_RSF);
ssrreg = (uint16_t)((uint16_t)((uint16_t)ssrhreg << 8) | (uint16_t)(ssrlreg));
return (uint16_t)(ssrreg);
}
STM8L052C6T6 RTC 亚秒读取问题
博客详细介绍了在STM8L052C6T6微控制器上遇到的问题,该控制器由于缺乏SS_RX寄存器而无法正确读取RTC亚秒数据。作者分享了尝试读取RTC亚秒的具体代码,并解释了为何这种尝试会失败。
8312

被折叠的 条评论
为什么被折叠?



