要求:用定时器做一个计时功能,要求是上电开始计时,24小时后归0。
方法:先配置定时器
int DrvTimInit(void)
{
s_timer.clock = HAL_RCC_GetPCLK2Freq();
__HAL_RCC_TIM1_CLK_ENABLE();
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
s_timer.htim3.Instance = TIM1;
s_timer.htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
s_timer.htim3.Init.Prescaler = 7999; //预分频值
s_timer.htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
s_timer.htim3.Init.Period = 9999;//下一个更新事件装入活动的自动重装载寄存器周期的值
s_timer.htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if(HAL_OK != HAL_TIM_Base_Init(&s_timer.htim3))
{
return -1;
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; //内部时钟源
if (HAL_TIM_ConfigClockSource(&s_timer.htim3