//定时器7是普通计数器,只提供定时的功能开启中断只有一个中断没有//__HAL_TIM_ENABLE_IT(&htim7,TIM_IT_UPDATE);更新中断加上这个就会死机
void TIM7_Init(void) {
TIM_MasterConfigTypeDef sMasterConfig = {0};
htim7.Instance = TIM7;
htim7.Init.Prescaler = 71; // 预分频值PSC
htim7.Init.CounterMode = TIM_COUNTERMODE_UP; // 向上计数模式
htim7.Init.Period = 5000; // 自动重载值ARR
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; // 自动重载禁用预装载
if (HAL_TIM_Base_Init(&htim7) != HAL_OK) {
Error_Handler();
}
// 配置定时器主从模式(此处无需主从模式,保持默认)
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
Error_Handler();
}
}
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
{
if(htim->Instance == htim7.Instance)
{
__HAL_RCC_TIM7_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0); // 优先级组1,子优先级0
HAL_NVIC_EnableIRQ(TIM7_IRQn);
//__HAL_TIM_ENABLE_IT(&htim7,TIM_IT_UPDATE);
}
}