개발 환경: LED 하나 켜기까지
STM32CubeIDE, 컴파일러, 디버거를 갖추고 첫 펌웨어를 올립니다. 첫 LED가 켜지면 툴체인 전체가 확인된 것입니다.
필요한 것
| 구성 | 예 |
|---|---|
| IDE | STM32CubeIDE, VS Code + 확장 |
| 컴파일러 | arm-none-eabi-gcc (IDE에 포함) |
| 디버거 | ST-LINK (Nucleo 보드에 내장), J-Link |
| 설정 도구 | STM32CubeMX (핀, 클럭 설정 후 코드 생성) |
| 보드 | Nucleo-F411RE 같은 개발 보드 |
첫 프로젝트 순서
- 보드 이름으로 새 프로젝트 생성
- CubeMX 화면에서 LED 핀(예: PA5)을 GPIO_Output으로 설정
- 코드 생성 후
while(1)안에 토글 코드 추가 - 빌드 → 디버그 실행 → LED 깜빡임 확인
while (1) {
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(500);
}
LED가 안 켜질 때
- 보드 회로도에서 LED가 정말 그 핀에 연결됐는지
- 디버거 연결이 되는지 (ST-LINK 펌웨어 업데이트가 필요할 때가 많음)
- 생성된 코드의
/* USER CODE BEGIN */블록 밖에 코드를 써서 재생성 때 지워지지 않았는지
이 단계가 되면 컴파일러, 링커, 스타트업, 디버거가 모두 정상이라는 뜻입니다.