初级会员

- 积分
- 167
- 金钱
- 167
- 注册时间
- 2020-7-16
- 在线时间
- 34 小时
|

楼主 |
发表于 2020-7-30 17:01:37
|
显示全部楼层
u8 RTC_Init(void)
{
RTC_Handler.Instance=RTC;
RTC_Handler.Init.HourFormat=RTC_HOURFORMAT_24;//RTC设置为24小时格式
RTC_Handler.Init.AsynchPrediv=0X01; //RTC异步分频系数(1~0X7F)
RTC_Handler.Init.SynchPrediv=0X4000; //RTC同步分频系数(0~7FFF)
RTC_Handler.Init.OutPut=RTC_OUTPUT_DISABLE;
RTC_Handler.Init.OutPutPolarity=RTC_OUTPUT_POLARITY_HIGH;
RTC_Handler.Init.OutPutType=RTC_OUTPUT_TYPE_OPENDRAIN;
if(HAL_RTC_Init(&RTC_Handler)!=HAL_OK) return 2;
if(HAL_RTCEx_BKUPRead(&RTC_Handler,RTC_BKP_DR0)!=0X5051)//是否第一次配置
{
RTC_Set_Time(14,58,0,RTC_HOURFORMAT12_PM); //设置时间 ,根据实际时间修改
RTC_Set_Date(20,7,30,4); //设置日期
HAL_RTCEx_BKUPWrite(&RTC_Handler,RTC_BKP_DR0,0X5051);//标记已经初始化过了
}
return 0;
}
我这样分频的话,是1秒吗?
然后我再这样去算他的毫秒数 0x4000=16384(D)
RTC_ms=(float)(16384-RTC->SSR);
RTC_ms=RTC_ms/16384*1000; |
|