реклама на сайте
подробности

 
 
> Внешнее прерывание в STM32, почему не происходит прерывание от кнопки?
kumle
сообщение Sep 9 2011, 06:52
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 15-12-09
Из: Москва
Пользователь №: 54 280



Всем привет!
Разбираюсь с платкой STM32DISCOVERY
Там имеется кнопка которая подключена к порту PA0
Надо сделать чтоб по нажатию происходило прерывание

Пользуюсь библиотекой STM32F10x_StdPeriphDiver (CMSIS)

Я делаю так:

1) В подключенном к проекту файле startup_stm32f10x_md_vl.s есть строка DCD EXTI0_IRQHandler ; EXTI Line 0
поэтому в программе вставляю обработчик void EXTI0_IRQHandler(void)
2) Затем настраиваю порт PA0 как вход подтянутый к нулю
3)Включаю тактирование RCC_APB2Periph_GPIOA порта A
4)Тут же включаю тактирование RCC_APB2Periph_AFIO, так как это альтернативная фунция порта
5) Настраиваю блок EXTI и разрешаю прерывание в NVIC:

void EXTI_INIT(void)
{
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //говорим что вывод PA0 используется как внешний вывод прерывания
GPIO_EventOutputConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //неуверен что это нужно ???

EXTI_InitStructure.EXTI_Line = 0; //используем линию 0 (она для портов PA0 - PG0)
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //режим хардварного прерывания
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //прерывание по нарастанию импульса
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //??? это я вообще непонял зачем нужно ???
EXTI_Init(&EXTI_InitStructure); //передаем настройку в функцию инициализации

EnableIRQ(EXTI0_IRQn); //разрешаем прерывание в NVIC //использую линию EXTI0_IRQn так как она ля портов PA0-PG0
}

Все сделал но прерывание не срабатывает ?
Другие прерывания (от USART и от SYSTICK) в эом же проекте прекрасно работают
В чем тут может быть дело? Может я чего упустил ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016