개발자의 생활

STM32 시작하기 본문

STM32

STM32 시작하기

Developer성현 2026. 8. 7. 00:00

저는 지금까지 하드웨어를 개발할 때 Atmega 또는 ESP32를 아두이노 환경에서 개발을 하였습니다.

아두이노는 교육용으로 개발된 것이지만 간단한 임베디드 시스템을 개발하거나 프로토타입으로 검증할 때도 부족하지 않다고 생각각 했습니다. 더군다나 지금은 정식적으로 ESP32_S3와 ARM 기반의 르네사스 MCU 가 UnoR4에 탑재되고 OS 도 탑재할 수 있는 Uno Q 가 출시되면서 단순히 교육용을 넘어 실험과 연구 목적으로도 사용할 수 있을 정도가 되었습니다.

 

1. STM32 를 공부하는 이유

하지만 저는 STM32 를 공부하기로 했습니다. 이유는 여러 가지가 있습니다.

  1. 하드웨어 자원의 최적화: 레지스터 레벨에서 내부 클럭 트리를 자유롭게 구성할 수 있고, DMA(Direct Memory Access)를 활용해 CPU 부하를 낮출 수 있습니다.
  2. 높은 전력 및 시스템 효율: 세밀한 전력 제어가 가능하여 배터리 기반 디바이스나 초저전력 시스템 구축에 유리합니다.
  3. 유연한 개발 층위 (CubeMX, HAL, LL): STM32CubeMX를 통해 복잡한 핀 매핑과 클럭 트리를 UI환경에서 설정할 수 있고, 개발 생산성을 위한 HAL(Hardware Abstraction Layer) 드라이버를 제공합니다. 물론 HAL 역시 약간의 오버헤드가 존재하지만 아두이노 API에 비하면 매우 경량화되어 있으며, 극단적인 성능이 필요할 때는 LL(Low-Layer) 라이브러리나 레지스터 직접 조작을 통해 베어메탈(Bare-metal) 제어 수준의 오버헤드 제로 성능을 끌어낼 수 있습니다.

결국 제품의 완성도를 높이고, 하드웨어가 가진 본래의 성능을 100% 최적화하여 다루기 위해서는 STM32와 같은 임베디드 하위 레벨 제어로의 전환이 필수적이라는 결론을 내리게 되었습니다.


저도 현재 이 글을 작성하는 시점에서 STM32를 공부한 지 얼마 안 되어 아무것도 모르는 상태이며 앞으로 공부하면서 블로그에 글을 작성할 것 입니다.

 

저는 공부와 실습을 진행할 MCU로 STM32F103RB 를 사용하는 NUCLEO 보드와 STM32G030F6P6 을 사용할 것입니다.

2가지 MCU로 동시에 실습하는 이유는 MCU 마다 여러 라인업들이 있고 그에 따른 하드웨어 아키텍처가 다르기 때문입니다.