이번에는 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 후 실행.
결과
'Embedded System > STM32' 카테고리의 다른 글
[STM32] 6. Built-in Button을 사용하여 built-in LED Control (1) | 2025.09.07 |
---|---|
[STM32] 5. Blink LED (0) | 2025.09.07 |
[STM32] 3. STM32Cube 프로젝트 생성 (0) | 2025.09.06 |
[STM32] 2. Cortex 시리즈 정리 (0) | 2025.09.04 |
[STM32] 1. STM32 시리즈 (0) | 2025.09.02 |
댓글