Embedded/1. STM32, Arduino

STM32 - EXTI (External Interrupt) 구현 - (1)

잇(IT) 2024. 5. 25. 23:59

https://insoobaik.tistory.com/609

 

STM32 - EXTI (External Interrupt 외부 인터럽트) 이론

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.

insoobaik.tistory.com

이전에 학습한 이론을 통해 EXTI를 직접 구현해보도록 하겠다.


브레드보드를 이용하여 위와 같이 스위치를 이용한 회로 3개를 통해 EXTI를 구성할 것이다.

1. SW1을 누르면 인터럽트가 발생하여 LED 1 -> 2 -> 3이 차례로 하나씩 점멸하도록 구현

2. SW2를 누르면 인터럽트가 발생하여 LED 3 -> 2 -> 1이 차례로 하나씩 점멸하도록 구현

3. SW3을 누르면  인터럽트가 발생하여 LED 1, 2, 3이 한번에 점멸하도록 구현


 

3, 5, 10번 Pin 전부 Rising edge trigger로 설정한다.

 

인터럽트 설정 후 코드를 생성하게 되면 위와 같이 해당 인터럽트에 대한 코드가 생성된다.

 

main.c 코드에도 MX_NVIC_Init()을 통해 해당 인터럽트들이 초기화 되는 것을 확인할 수 있다.


3가지 모드가 구현되어 있기 때문에 각 스위치가 눌림에 따라 모드를 설정하는 변수 mode를 설정한다.

각 인터럽트가 발생했을때 모드를 설정한다. mode 1, 2, 3

mode == 1일 때 LED 1 -> 2 -> 3이 점멸하고,  mode == 2일 때 LED 3 -> 2 -> 1이 점멸하고 mode 3일때 LED 1, 2, 3이 점멸하도록 코드를 작성하였다.

(LD1, LD2, LD3의 PIN 번호는 B의 0, 7, 14에 해당한다.)

 

 

728x90