Перейти к содержанию

Stm32 Внутренние И Внешние Прерывания. Помогите Разобраться


FrostedVic

Рекомендуемые сообщения

Здравствуйте! Помогите пожалуйста разобраться с прерываниями. Вернее с тем как их настраивать используя только CMSIS.

Мой девайс STM32F4DISCOVERY программирую под IARом.

Для структуризации разделю свои вопросы на две части по внутренним прерываниям и по внешним.

Логичнее начать с внутренних.

NVIC

Разрешение прерываний. С функцией NVIC_EnableIRQ(IRQ) все понятно, просто запихнуть в ее аргумент нужный обработчик.

Вопрос как разрешить прерывания с использованием регистров. Насколько я понял для разрешения прерываний используется регистр ISER, более того он разбит на три элемента. Вот тут и возникает вопрос. Как используя тот или иной элемент разрешить прерывания по нужной мне периферии? Например USART

Приоритеты и группы приоритетов прерываний Вот здесь для меня вообще темный лес.

Как с помощью регистров расставлять приоритеты? IPRx как раз отвечает за приоритет. Но их 20 шутк Как определить какой из них отвечает за выставление приоритета у того же USART и какой байт мне нужен?

Что касается подгрупп то дело еще темнее. Вообще читая RM часто вижу обозначение РЕГИСТР[x:y] например: AIRCR[10:8] что в скобках? Как я могу это использовать?

EXTI

Собственно вопросы те же самые. Единственное, что хочу прописать здесь для собственного понимания это то, что для прерываний по состоянию ножки эту самую ножку я должен сконфигурировать как альтернативную функцию. Про софтверный вызов я пока молчу.

Если быть конкретнее, то вот вопросы:

У нас 16 линий EXTI каждому номеру соответствует номер порта, то есть EXTI1 отвечает за ножки номер 1 портов A-E (в моем случае) Но как назначить порт?

Далее непонятно, если у нас 16 линий EXTI0-EXTI15, то что такое EXTI0_IRQn до EXTI4_IRQn и EXTI5_9_IRQn и EXTI10_15IRQn

В примерах кода видел такую запись: AFIO->EXTICR[1] AFIO - очевидно, что-то связанное с Альтернативной функцией. Посмотрел в IAR у меня подобного нет, но есть SYSCFG->EXTICR[1] или эти вещи не связаны? Еще что такое EXTICR[1] (в заголовках вообще объявлен массив из 4-х элементов)?

Ну и собственно непонятен опять же момент с разрешением прерываний с использование регистра IMR. Вот я выбрал ногу микроконтроллера, вот я выбрал порт. Как разрешить именно это прерывание?

Уффф. Пока все. Вопросов много. Не пинайте, я честно сидел и разбирался в примерами и читал RM. Отсюда и возникли вопросы.

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Разбирался с прерываниями но для платы stm32vl с контроллером stm32f100rb.

Настройка пина на прерывание.

void init_button()
{
 RCC->APB2ENR |= RCC_APB2Periph_GPIOA; //включаем тактирование порта А
 GPIOA->CRL |= 0x04; // настраиваем пин РА0 на вход
 GPIOA->CRL &= ~0xb;
 // настройка прерывания
 AFIO->EXTICR [1] = AFIO_EXTICR1_EXTI0_PA;//настройка порта и выбор пина назначенного для прерывания
 EXTI->FTSR |= EXTI_FTSR_TR0; //настройка на вид сигнала
EXTI->IMR |= EXTI_IMR_MR0; // маска запроса внешнего прерывания..
 NVIC_EnableIRQ (EXTI0_IRQn); //разрешаем прерывание
}

EXTI0_IRQn до EXTI4_IRQn и EXTI5_9_IRQn и EXTI10_15IRQn

Это группы каналов. При возникновении прерывания сигнал может генерироваться как по отдельным каналам так и по групповым.

Изменено пользователем Санчо Пансо
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...