Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 
Итак вы запрограммировали свой TIM16 таймер, но после запуска с удивлением обнаруживаете, что прерывания не происходят?
Всего пару вещей нужно добавить ( например, в main.c):

1. Определить коллбэк

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{
   if (htim == &htim16)
   {
      HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_9);
   }
}

2. Вызвать
  //  __HAL_TIM_ENABLE_IT(&htim16, TIM_IT_UPDATE);
  HAL_TIM_Base_Start_IT(&htim16);
HAL_NVIC_SetPriority(TIM16_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM16_IRQn); __HAL_TIM_ENABLE_IT(&htim16, TIM_IT_UPDATE);