Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование
Создано: 03 сентября 2022
Обновлено: 03 сентября 2022
Просмотров: 218
Итак вы запрограммировали свой 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);