2024-09-04 19:33:49

STM32 마이크로컨트롤러를 사용하여 내장된 LED를 제어하는 프로젝트를 구성하는 방법에 대해 설명한다. 이 예제에서는 STM32F103C8T 보드를 사용하고, STM32CubeIDE 환경에서 작업한다고 가정한다. 이 보드에는 일반적으로 PC13 핀에 연결된 내장 LED가 있다.

STM32F103C8T

1. 개발 환경 설정

먼저 STM32CubeIDE를 설치하고 새 프로젝트를 시작해야 한다. STM32CubeIDE는 STM의 공식 개발 환경으로, 코드 작성, 컴파일, 디버그를 지원한다.

STM32CubeIDE 설치: STMicroelectronics 웹사이트에서 다운로드 후 설치한다.

  • 새 프로젝트 생성:
    • 'File' 메뉴에서 'New' > 'STM32 Project'를 선택한다.
    • 사용할 보드나 MCU를 검색하여 선택하고 프로젝트 설정을 완료한다.

2. 프로젝트 설정

프로젝트를 생성한 후, 필요한 페리페럴 설정을 해야 한다. 여기서는 GPIO (General Purpose Input Output) 설정에 초점을 맞춘다. 하기 설정에 대한 설명은 다음 포스팅 때 진행한다.

  • GPIO 설정:
    • CubeIDE의 CUBE-MX 인터페이스에서 'Pinout & Configuration' 탭을 연다.
    • PC13 핀을 찾아 하기 사진과 같이 설정한다.

CUBE IDE: PinOut & Configuration

3. 생성된 코드 확인

Pinout & Configuration에서 생성을 완료하면, main.c 파일에 아래와 같이 코드가 생성된다.

자동 생성 코드

LED를 켤려면, 아래와 같이 pin write를 한다.

LED ON

LED를 끌려면, 아래와 같이 pin write를 한다.

LED OFF

#include "main.h"

// 메인 함수
int main(void)
{
  // HAL 라이브러리 초기화
  HAL_Init();

  // 시스템 클록 설정
  SystemClock_Config();

  // GPIO 초기화
  MX_GPIO_Init();

  // 무한 루프
  while (1)
  {
    // LED ON
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // LED가 LOW일 때 ON
    HAL_Delay(1000); // 1초 대기

    // LED OFF
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // LED가 HIGH일 때 OFF
    HAL_Delay(1000); // 1초 대기
  }
}

// 시스템 클록 설정 함수 (자동 생성됨)
void SystemClock_Config(void)
{
  // 이 함수는 MCU의 클록 설정을 담당
}

// GPIO 초기화 함수
void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  // 클록 활성화
  __HAL_RCC_GPIOC_CLK_ENABLE();

  // GPIO 설정
  GPIO_InitStruct.Pin = GPIO_PIN_13;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
}

4. 컴파일 및 업로드

코드를 작성한 후에는 STM32 보드에 프로그램을 컴파일하고 업로드해야 한다.

  • 컴파일: 프로젝트를 빌드한다. 이는 IDE의 'Project' 메뉴에서 'Build All'을 선택하여 수행할 수 있다.
  • 업로드: STM32 보드를 PC에 연결하고, 'Run' 메뉴에서 'Debug'를 선택하여 코드를 보드에 업로드한다.

이렇게 해서 STM32 마이크로컨트롤러를 사용하여 내장 LED를 간단하게 점멸해볼 수 있다.

5. 테스트 보드

https://smartstore.naver.com/oj-store/products/5989677517

 

[개발 실습 보드] 임베디드 강의 실습 보드 (STM32F103C8T6 개발 실습 보드) : 오제이 스토어

[오제이 스토어] 오제이 주식회사 스토어|OJ Tube 임베디드 교육에 필요한 장비 판매.

smartstore.naver.com

728x90
반응형

'Embeded SW > STM32' 카테고리의 다른 글

[STM32] 4. GPIO Output 설명  (0) 2024.09.07
[STM32] 2. STM32 LINK 업데이트  (1) 2024.09.02
[STM32] 1. Cube IDE 시작하기.  (2) 2024.09.01