본문 바로가기

임베디드 & 로보틱스/STM32

[STM32-기초] HAL GPIO로 내장 LED 500ms 점멸

준비물

- CubeIDE가 설치된 PC

- 개발 보드 : Nucleo-F746ZG

- micro 5 pin 케이블

목표

Nucleo-F746ZG 개발보드에 내장된 LD1 LED를 500ms 로 점멸하기

참고 자료

https://www.st.com/resource/en/user_manual/um1974-stm32-nucleo144-boards-mb1137-stmicroelectronics.pdf


HAL Driver를 사용하여 LD1(내장 LED) 500ms로 점멸하기

1. CubeIDE 새 프로젝트 만들기

  1. File → New → STM32 Project
  2. MCU/MPU Selector 탭 → Commercial Part Number 에서746ZGT6 검색 → 선택 → Next
  3. 프로젝트 이름 입력 gpio_ledFinish
  4. 팝업창 에서 "Do you want to apply now such default configuration?" 이라고 물으면 yes

사실 Board Selector에서 검색해서 보드를 선택하고, 프로젝트 이름을 입력하고
"Initialize all peripherals with their default mode?”팝업창에서 yes를 클릭하면
보드 핀 별칭과 일부 기본 설정이 따라와서 편하지만
저희는 Datasheet와 User Manual을 확인하는 것 까지 연습하기 위해 이 기본 핀 설정은 사용하지 않겠습니다.


2. LED와 연결된 GPIO pin 확인하기

LD1이 연결된 GPIO 핀은 위에 첨부한 참고자료(UM1974)에서 확인할 수 있습니다.

 

LD1PB0에 연결된 것을 알 수 있습니다.


3. Pinout & Configuration 확인/수정

  1. Pinout view에서 하단의 돋보기 란에 PB0 입력
  2. Pinout & Configuration 창에서 PB0 이 반짝이고 있음
  3. PB0 클릭 → GPIO_Output 클릭 → 핀이 초록색으로 변함(할당 됨)
  4. PB0 우클릭 → Enter User Label 클릭 → LD1[Green] 입력 → 엔터
  5. CategoriesSystem CoreGPIO
  6. 아래와 같이 설정 되어있는지 확인
    1. GPIO output level : Low
    2. GPIO mode : Output Push Pull

LD1은 GPIO output level이 HIGH 일 때 켜지고, LOW 일 때 꺼집니다.

 

4. 코드 생성

  1. 상단 ProjectGenerate Code(노란색 톱니바퀴 아이콘)
    "Open Associate Perspective?" 라는 팝업창이 열리면 yes 클릭
  2. 이제 Core/Src/main.c 를 열고 /* USER CODE BEGIN 2 */ / /* USER CODE END 2 */while(1) 내부의 사용자 영역을 채웁니다.
  /* USER CODE BEGIN 2 */
  HAL_GPIO_WritePin(LD1_GPIO_Port, LD1_Pin, GPIO_PIN_RESET);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin);  // LED 토글
    HAL_Delay(500);                              // 500 ms 지연
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

5. 빌드 & 다운로드

  1. 빌드(망치 아이콘) 클릭 → 에러 없이 빌드 되는지 확인
  2. run(초록색 재생 아이콘)

"ST-LINK firmware verification" 팝업이 나오는 경우

더보기

  • Yes 클릭
  • STLinkUpgrade 팝업창 → Open in update mode → 로딩 → Upgrade 클릭 → 약간의 로딩

  • Upgrade 클릭

  • 업그레이드 성공 확인

 

LD1이 잘 반짝이는 모습을 확인할 수 있습니다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.