调用库函数读出的数据为零。后来发现,是因为我用的是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);
}