https://insoobaik.tistory.com/609
이전에 학습한 이론을 통해 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
'Embedded > 1. STM32, Arduino' 카테고리의 다른 글
STM32 - UART 이론 - (2) (0) | 2024.05.26 |
---|---|
STM32 - UART 이론 - (1) (0) | 2024.05.26 |
STM32 - EXTI (External Interrupt 외부 인터럽트) 이론 (0) | 2024.05.25 |
STM32 - Clock Configuration (0) | 2024.05.25 |
STM32 - GPIO / 7_segment Counter 0~9까지 숫자 나타내기 (0) | 2024.05.22 |