티스토리 뷰

반응형

2. EXIT(External Interrupt-외부 인터럽트)

           -이번 장은 외부 인터럽트를 이용하여 LED를 키고 끄는 방법을 익힌다.

           -주로 외부에서 어떤 자극이 발생했을 시 실행 되어야 하는 소스가 있을 시 사용된다.

           -아래 예제는 PA0rising edge(Low->High)가 발생 했을 시 PG14핀이 On Off

 

회로도

STM32F429i Discovery BoardPA0USER 버튼이 연결되어 있다.

기본 pull-down 저항이 배치되어 있어 기본 상태는 0V이며 버튼을 누를 시 5VPA0에 공급 된다.

위의 그림은 링크에서 UM1670 데이터 시트를 통해 참고한다.


CUBE MX

SYS설정후

PA0포트에 EXTI0, PG14Output 설정을 해준다



위의 Modified는 기본 셋팅을 사용자가 변경시 체크 되며 신경 쓸 필요 없다.

포트에 EXTI를 설정하였을 경우 아래와 같은 설정을 할 수 있다.

GPIO mode: 외부 인터럽트의 발생 방식을 설정할 수 있으며 Rising, Falling Edge가 있다.

GPIO Pull-up/Pull-down: PA0포트에 풀업, 풀다운 저항을 설정할 수 있으며 현재 보드의 PA0는 풀다운 저항이 회로로 구성되어 있으므로 설정할 필요가 없다.

 

Source Code(main)

/* USER CODE BEGIN 4 */

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){

  if(GPIO_Pin == GPIO_PIN_0){ //PA0 Riging Edge 입력시 아래의 함수 실행

    HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_14);//PG14가 토클된다 On->Off, Off->On

  }

}

/* USER CODE END 4 */

 

실행 결과

USER 버튼을 누를 때마다 LED On, Off 된다.






반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함