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 |