STM32F429_CUBE MX를 이용한 EXTI 설정
2. EXIT(External Interrupt-외부 인터럽트)
-이번 장은 외부 인터럽트를 이용하여 LED를 키고 끄는 방법을 익힌다.
-주로 외부에서 어떤 자극이 발생했을 시 실행 되어야 하는 소스가 있을 시 사용된다.
-아래 예제는 PA0에 rising edge(Low->High)가 발생 했을 시 PG14핀이 On Off
회로도
STM32F429i Discovery Board의 PA0는 USER 버튼이 연결되어 있다.
기본 pull-down 저항이 배치되어 있어 기본 상태는 0V이며 버튼을 누를 시 5V가 PA0에 공급 된다.
위의 그림은 링크에서 UM1670 데이터 시트를 통해 참고한다.
CUBE MX
SYS설정후
PA0포트에 EXTI0, PG14는
Output 설정을 해준다
위의 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 된다.