본문 바로가기
Embedded System/STM32

[STM32] 4. Blink built-in LED

by 리미와감자 2025. 9. 7.

이번에는 Nucleo Board 자체에 내장된 LED를 깜빡이는 실습을 할 생각이다.

 

 

프로젝트 생성

다시 프로젝트 생성하자.

 

이번에는 MCU/MPU Selector가 아니라 Board Selector로 프로젝트를 생성한다. STM32CubeIDE에서 새 프로젝트를 시작할 때 MCU/MPU Selector는 칩 자체를 선택해 모든 설정을 수동으로 해야 하는 반면, Board Selector는 공식 개발 보드를 선택해 해당 보드에 맞는 핀, 클럭, 주변 장치 설정이 자동으로 완료되어 편리하다.

 

 

 

1_blink_built-in_LED 라는 프로젝트를 생성하면, 위와 같은 Pinout & Configuration 화면이 나타난다.

 

 

내장 LED 찾기

프로젝트 생성을 완료했으니, 보드 위에 내장 LED가 어디에 붙어있는지 찾아야한다. 사실 위 Pinout View에서 LD2[Green Led]가 PA에 연결되어있는걸 쉽게 찾을 수 있다. 하지만, 데이터시트를 읽으면서 찾아가본다.

 

 

 

보드메뉴얼을 읽어보면, user LED가 LD2라는 이름인걸 알 수 있다.

 

핀 이름 찾기

 

LD2과 연결된 핀 이름을 찾자.

 

회로도를 보면, LED2가 D13 커넥터를 지나서 PA5 핀과 연결된다.

 

 

메뉴얼에도 나와있다.

 

 

Blink 코딩

 

PA5 핀은 Default 값으로 GPIO_Output으로 되어있기 때문에 설정값을 수정할 필요는 없다.

  /* USER CODE BEGIN WHILE */
  while (1)
  {
      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
      HAL_Delay(500);
      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
      HAL_Delay(500);
    /* USER CODE END WHILE */

 

1. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);

  • GPIOA 포트의 5번 핀(PA5)High(논리 1, 전압 인가)
  • 보드에서는 PA5가 내장 LED(LD2) 에 연결돼 있으니까 LED가 켜짐.

2. HAL_Delay(500);

  • 500ms(0.5초) 동안 기다려.
  • 그동안 LED가 켜져 있는 상태로 유지됨.

3. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);

  • PA5를 Low(논리 0, 전압 0V)
  • LED 전류가 끊겨서 꺼짐.

4. HAL_Delay(500);

  • 다시 0.5초 동안 기다려서 꺼진 상태를 유지.

 

Build 후 실행.

 

결과

 

댓글