그라운드 임베디드 EN 유튜브 구독

노트 / MCU 펌웨어

개발 환경: LED 하나 켜기까지

STM32CubeIDE, 컴파일러, 디버거를 갖추고 첫 펌웨어를 올립니다. 첫 LED가 켜지면 툴체인 전체가 확인된 것입니다.

GROUND EMBEDDED · 정리 노트펌웨어 01개발 환경 1while (1) { 2 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_… 3 HAL_Delay(500); 4}
소스 코드main.c컴파일러arm-none-eabi-gcc실행 파일.elf / .bin디버거ST-LinkMCU Flash
소스 코드가 MCU 안에서 돌기까지. 첫 LED가 켜지면 이 줄 전체가 맞게 이어진 것입니다.

필요한 것

구성 예
IDE STM32CubeIDE, VS Code + 확장
컴파일러 arm-none-eabi-gcc (IDE에 포함)
디버거 ST-LINK (Nucleo 보드에 내장), J-Link
설정 도구 STM32CubeMX (핀, 클럭 설정 후 코드 생성)
보드 Nucleo-F411RE 같은 개발 보드

첫 프로젝트 순서

  1. 보드 이름으로 새 프로젝트 생성
  2. CubeMX 화면에서 LED 핀(예: PA5)을 GPIO_Output으로 설정
  3. 코드 생성 후 while(1) 안에 토글 코드 추가
  4. 빌드 → 디버그 실행 → LED 깜빡임 확인
while (1) {
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
    HAL_Delay(500);
}

LED가 안 켜질 때

  • 보드 회로도에서 LED가 정말 그 핀에 연결됐는지
  • 디버거 연결이 되는지 (ST-LINK 펌웨어 업데이트가 필요할 때가 많음)
  • 생성된 코드의 /* USER CODE BEGIN */ 블록 밖에 코드를 써서 재생성 때 지워지지 않았는지

이 단계가 되면 컴파일러, 링커, 스타트업, 디버거가 모두 정상이라는 뜻입니다.

영상으로 이어 보기회로와 하드웨어 시리즈 8편전자제품 속 회로 소자는 어떻게 동작할까? · 저항 · 커패시터 · 인덕터 완벽 정리PROJECT COURSE레지스터 설정을 실제 보드에서 해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →