Использование внешнего переключателя в качестве прерывания - PullRequest
0 голосов
/ 18 сентября 2018

Как использовать внешний переключатель в качестве прерывания в микроконтроллере Nucleo STM32L073RZ?

Это мой код:

#include "stm32l0xx.h"
#include "stm32l0xx_nucleo.h"
#include "stm32l0xx_hal.h"

static void GPIO_Init(void);

int main(void)
{
 HAL_Init();
 GPIO_Init();
 while(1)
{

 }
}    
static void GPIO_Init(void)
{

GPIO_InitTypeDef GPIO_InitStruct;

/*Configure GPIO pin : PC15 */
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);
}



void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin_15)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
}

Также, как мне подключить внешний переключатель к моей плате?

1 Ответ

0 голосов
/ 18 сентября 2018

Подключите переключатель между GPIO и землей (как вы установили подтягивание).

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

...