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

Stm32F0Discovery (Stm32F051R8T6) Внешнее Прерывание На Pa1


gafbich

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

Проблема с настройкой внешнего прерывания на PA1

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

#include "stm32f0xx_exti.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_misc.h"
#include "stm32f0xx_syscfg.h"

EXTI_InitTypeDef exti;
NVIC_InitTypeDef nvic;
GPIO_InitTypeDef gpio;

void RCC_Set(void);
void exti_setting(void);
void GPIO_Set(void);


//############################################################//
//##################Включаем тактирование#####################//
//############################################################//
void RCC_Set(void)
{
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,ENABLE);
}
//############################################################//
//############################################################//
//############################################################//

//############################################################//
//#######################Настройка GPIO#######################//
//############################################################//
void GPIO_Set(void)
{
gpio.GPIO_Mode=GPIO_Mode_OUT;
gpio.GPIO_OType=GPIO_OType_PP;
gpio.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9;
gpio.GPIO_PuPd=GPIO_PuPd_NOPULL;
gpio.GPIO_Speed=GPIO_Speed_Level_2;
GPIO_Init(GPIOC,&gpio);

gpio.GPIO_Mode=GPIO_Mode_IN;
gpio.GPIO_OType=GPIO_OType_PP;
gpio.GPIO_Pin=GPIO_Pin_1;
gpio.GPIO_PuPd=GPIO_PuPd_NOPULL;
gpio.GPIO_Speed=GPIO_Speed_Level_2;
GPIO_Init(GPIOA,&gpio);
}
//############################################################//
//############################################################//
//############################################################//


//############################################################//
//###################Настройка Прерывания#####################//
//############################################################//
void exti_setting(void)
{
exti.EXTI_Line=EXTI_Line1;
exti.EXTI_LineCmd=ENABLE;
exti.EXTI_Mode=EXTI_Mode_Interrupt;
exti.EXTI_Trigger=EXTI_Trigger_Rising_Falling;
EXTI_Init(&exti);

nvic.NVIC_IRQChannel=EXTI0_1_IRQn;
nvic.NVIC_IRQChannelCmd=ENABLE;
nvic.NVIC_IRQChannelPriority=0;
NVIC_Init(&nvic);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource1);
NVIC_EnableIRQ(EXTI0_1_IRQn);
}
//############################################################//
//############################################################//
//############################################################//


int main(void)
{
RCC_Set();
GPIO_Set();
exti_setting();

while(1)
{

}
}

//############################################################//
//##################Обработчик Прерывания#####################//
//############################################################//
void EXTI0_1_IRQHandler(void)
{
GPIOC->ODR^=GPIO_Pin_8; //Инвертируем состояние светодиода
EXTI_ClearITPendingBit(EXTI_Line1);
}
//############################################################//
//############################################################//
//############################################################//

Чтобы не подать на PA1, обработчик не отрабатывает! Что не так, что я упустил?

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

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

/** Пример от ST Настройка только PA0, а не PA1. Жирным выделена строчка Enable SYSCFG clock попробуй с ней.

* @brief Configure PA0 in interrupt mode

* @param None

* @retval None

*/

static void EXTI0_Config(void)

{

/* Enable GPIOA clock */

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

/* Configure PA0 pin as input floating */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Enable SYSCFG clock */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);

/* Connect EXTI0 Line to PA0 pin */

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);

/* Configure EXTI0 line */

EXTI_InitStructure.EXTI_Line = EXTI_Line0;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

/* Enable and set EXTI0 Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPriority = 0x00;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

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

  • 1 год спустя...

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

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

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

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

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

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

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

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

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

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

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

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