Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2743
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Таймеры

320

Рисунок 12: Как подключить вывод TI2FP2 к выводу AVDD на плате Nucleo-F030R8

11.3.2.1. Разрешение прерываний, относящихся к триггерной цепи

При работе таймера в режиме ведомого, всякий раз, когда происходит определенное событие запуска (trigger event), срабатывает IRQ таймера, если он разрешен. Например, когда тактовый сигнал ведущего таймера запускается из-за события обновления, срабатывает IRQ ведомого таймера, при этом мы можем получить уведомление об этом, определив обратный вызов:

void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) {

...

}

По умолчанию HAL_TIM_Base_Start_IT() не разрешает этот тип прерывания. Мы должны

использовать функцию HAL_TIM_SlaveConfigSynchronization_IT() вместо функции

HAL_TIM_SlaveConfigSynchronization(). Очевидно, что должна быть определена соответствующая ISR, и из нее должна вызываться функция HAL_TIM_IRQHandler().

11.3.2.2.Использование CubeMX для конфигурации синхронизации ведущего/ведомого устройств

Чтобы сконфигурировать таймер в режиме ведомого в CubeMX, достаточно выбрать же-

лаемый режим запуска (Reset Mode, Gated Mode, Trigger Mode) в IP Pane tree (выпада-

ющий список Slave mode), а затем выбрать источник запуска Trigger Source, как показано на рисунке 13. Помните, что таймер, сконфигурированный в режиме ведомого и не работающий в Режиме внешнего тактирования 1 (External Clock Mode 1), должен тактиро-

ваться от внутреннего тактового сигнала или от источника тактового сигнала ETR2.