본문 바로가기

STM32/touchGFX_STM32

[stm32F746] 2. EXTI (외부인터럽트)

728x90

* 목표 : 보드의 B1(User Button)을 누르면 외부 인터럽트가 발생하여 LED(PK3) Toggle

 

1. GPIO 설정

 

- button이 연결된 PK3 핀을 EXTI_OUTPUT으로 설정

- mode : External Interrupt Mode with Falling edge trigger detection

=> B1 버튼 회로도를 보면 버튼을 눌렀을 때 신호가 High에서 Low로 바뀌도록 설계되어 있음. 따라서, 버튼을 누를 때 인터럽트가 발생하게 하려면 Falling edge 모드로 변경하는 것이 적합.

 

 

2. NVIC 설정

 

- EXTI line interrupt : ENABLE 설정

 

 

3. 코드 작성

 

- 인터럽트가 발생하면 EXT15_10_IRQHandler() -> HAL_GPIO_EXTI_IRQHandler() -> HAL_GPIO_EXTI_Callback() 순서로 함수 호출

 

- 사용자 코드는 콜백 함수에 구현

 

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_11)   // 외부인터럽트가 B1 버튼이라면
{
HAL_GPIO_TogglePin(GPIOK, GPIO_PIN_3);   // LED 토글
}
}

 

728x90

'STM32 > touchGFX_STM32' 카테고리의 다른 글

[stm32F746] UART 송신  (0) 2020.09.01
[stm32F746] 3. 외부인터럽트 + 타이머  (0) 2020.09.01
[stm32F746] 1. 타이머 만들기  (0) 2020.08.31
[touchGFX] Font 추가  (0) 2020.08.31
[touchGFX] UART Transmit  (0) 2020.08.28