Страница 1 из 1

Прерывание с ножки

Добавлено: Пн дек 28, 2015 19:16:27
O'NeiLL
Ребят объясните как инициализировать прерывание например по фронту от порта PC0. Желательно с примером.

Работаю с платой STM32VLDISCOVERY

P.S. новичок в теме, особо не мурчите на меня

Re: Прерывание с ножки

Добавлено: Пн дек 28, 2015 20:56:09
uk8amk
Надо выполнить следующее:
разрешить тактирование AFIO В APB2ENR
настроить GPIO на цифровой вход
выбрать порт и линию прерывания в AFIO_EXTICR
сконифигурировать региcтры EXTI:
Interrupt mask register (EXTI_IMR)
Rising trigger selection register (EXTI_RTSR)
Falling trigger selection register (EXTI_FTSR)
Включить канал EXTI в NVIC.

Для VLDISCOVERY есть архив с CMSIS и примерами кода на сайте ST.

Re: Прерывание с ножки

Добавлено: Пн дек 28, 2015 22:19:45
O'NeiLL
а можете пояснить что значат эти регистры и как формируются?
Rising trigger selection register (EXTI_RTSR)
Falling trigger selection register (EXTI_FTSR)

Re: Прерывание с ножки

Добавлено: Пн дек 28, 2015 23:33:59
Jeka_M
Это триггеры по возрастающему (rising) и спадающему (falling) фронту. То есть, можно настроить прерывание по возрастающему фронту, спадающему фронту или сразу по обоим фронтам. В этих регистрах нужно записать 1 в определённый бит TR (в зависимости от ножки на которой прерывание). Подробное описание регистров есть в референс мануале (Reference Manual).

Вот статейки ещё почитайте, информации в интернете достаточно.
ARM. Учебный курс. Внешние прерывания
ARM. Учебный Курс. Прерывания и NVIC — приоритетный контроллер прерываний
Обработка нажатия пользовательской кнопки, используя внешние прерывания
Прерывания в STM32
STM32–Контроллер внешних прерываний(событий)