STM32CubeMX 사용법

유명현·2021년 7월 3일
0

안녕하세요?

오늘은 STM32CubeMX 사용법에 대해 알아보려고 합니다.

구글링 및 데이터 시트를 보면 구버전이 주로나와서 저도 사용법에 공부하느라 애먹었네요....

< STM32CubeMX 란?? >

STM32Cubemx란 GUI를 이용하여 손쉽게 초기화 코드를 작성할 수 있는 툴입니다.

이는 사용자 편의를 위한 다양한 기능을 제공해 주기 때문에 코드를 작성하는데 많은 시간을 줄일 수 있습니다.

< STM32CubeMX Downlaod 방법 >

STM32CubeMX는 ( https://www.st.com/en/development-tools/stm32cubemx.html ) 접속 후 다운로드가 가능합니다.

< STM32CubeMX 사용방법 - 1 >

다운로드 후 설치가 완료했다면 Stm32CubeMX를 실행하고 File에 New Project 버튼을 눌러줍니다.

< STM32CubeMX 사용방법 - 2 >

프로젝트 생성하기 전에 MCU 및 보드를 선택해야 합니다.

원하는 MUC가 선정된 경우 MCU명을 입력하게 되면 바로 사용하실 수 있습니다.

원하는 MCU가 정해지지 않았을 경우 직접 코어 및 시리즈를 선택한 후 원하는 MCU를 선택해야 합니다.

< STM32CubeMX 사용방법 - 3 >

MCU선택 외에도 직접 보드를 선택해 사용하실 수 있습니다.

보드도 마찬가지로 선정된 경우 보드명을 입력하여 선택하실 수 있고 선정되지 않은 경우 여러 항목을 선택하여 원하는 보드를 선정하실 수 있습니다.

< STM32CubeMX 사용방법 - 4 >

예제를 사용하기 싶은 경우 Example Selector를 통해 ST사에서 제공되는 에제를 사용하실 수 있습니다.

< STM32CubeMX 사용방법 - 5 >

Cross Selector에서 타사의 MCU를 선택하여 그 제품과 유사한 ST사의 MCU 항목을 보여주는 기능입니다.

2여기서 보여주는 타사의 MCU의 정보는 반도체 제조사에서 제공하는 데이터를 기반해서 만들어졌고, 오류가 있을 가능성이 있기 때문에 구매하기 전 데이터시트를 참고해야 합니다.

< STM32CubeMX 사용방법 - 6 >

Pinout & configuration에서 선택한 MCU의 핀을 클릭하면 각 핀의 사용할 수 있는 기능이 나옵니다.

< STM32CubeMX 사용방법 - 7 >

핀 배치도에서 핀의 기능을 설정하게 되면 각 기능마다 세부 사항 설정은 기본값으로 설정되어 있습니다.
User Label을 통해 핀의 이름을 지정할 수 있습니다.

< STM32CubeMX 사용방법 - 8 >

핀 배치도에서 설정에 따라 상태 아이콘이 옆에 표시됩니다.

< STM32CubeMX 사용방법 - 9 >

Undo Mode and pinout - 마지막 구성 단계를 실행 취소합니다.
Redo Mode and pinout - 실행 취소된 단계를 하나씩 다시 실행합니다.

< STM32CubeMX 사용방법 - 10 >

Keep Current Signals Placement - 새로운 주변 장치 작동 모드와 일치하도록 핀 할당을 이동하는 것을 방지합니다.
체크할 시 - PA4에 USART 기능이 없어 더 이상 남은 핀에 USART를 설정할 수 없어 빨간색으로 USART가 표시가 됩니다.
체크 안 할 시 – USART 기능이 사용할 수 있으며, USART 기능을 선택할 시 GPIO_INPUT은 PA4에 이동되고 USART1의 기능은 PC4로 USART3의 기능은 PB2로 이동됩니다.

< STM32CubeMX 사용방법 - 11 >

Show User Label - User Label 표시 여부를 선택합니다.

< STM32CubeMX 사용방법 - 12 >

Disable All Modes –활성화된 모든 주변 장치 및 미들웨어 모드를 비활성화로 설정합니다.
Clear Pinouts - 활성화된 모든 핀을 재설정 상태로 되돌립니다.

< STM32CubeMX 사용방법 - 13 >

Clear Single Mapped Signals - 연결된 모드가 없는 신호에 대해 핀에 대한 신호를 비활성화로 설정합니다.
Pins/Signals Option - 핀 이름 다시 설정합니다.
List Pinout Compatible MCUs - 현재 프로젝트의 핀 구성과 가장 일치하는 MCU 목록을 제공합니다.

< STM32CubeMX 사용방법 - 14 >

Export pinout with Alternate functions - 대체 기능 정보를 포함하는 핀 구성을 .csv 텍스트 파일로 생성합니다.
Export pinout without Alternate functions - 대체 기능 정보를 제외한 핀 구성을 .csv 텍스트 파일로 생성합니다.

< STM32CubeMX 사용방법 - 15 >

Reset used GPIOs - 구성된 총 GPIO 핀 수 중 해제할 GPIO 수를 지정하는 창을 엽니다.
Set unused GPIOs - 아직 사용되지 않은 총 GPIO 핀 수 중 구성할 GPIO 수를 지정하는 창을 엽니다.

< 각 위젯과 위젯에 대한 설명에 대한 표 >

< STM32CubeMX 사용방법 - 16 >

Clock Configuration - STM32CubeMX 클럭 구성 창은 클럭 경로, 클럭 소스, 분배기 및 승수에 대한 개략적인 개요를 제공합니다.

< STM32CubeMX 사용방법 - 17 >

HSE (High Speed External) : 외부 고속 Clock으로 STM32 외부에 Crystal/Ceramic resonator로 작동합니다.
HSI (High Speed Internal) : 내부 고속 Clock으로 STM32에 내장되어 있는 RC 발진 회로에 의해서 작동합니다.

< STM32CubeMX 사용방법 - 18 >

위상 고정 루프 (PLL)는 한 회로 기판이 온보드 클럭의 위상을 외부 타이밍 신호와 동기화할 수 있도록 설계된 피드백 회로입니다.
디지털 신호전송과 통신에 결정적인 역할을 합니다.

< STM32CubeMX 사용방법 - 19 >

LSE (Low Speed External) : 외부 저속 Clock으로 32.768kHz의 Crystal / Ceramic resonator를 사용합니다
LSI (Low Speed Internal) : 내부 저속 Clock으로 Independent Watchdog와 RTC Clock 등에 사용됩니다.
CSS(Clock Scurity System) : HSE clock에 문제가 발생할 경우, NMI interrupt 발생 및 Clock source를 HSI Clock으로 변경해 주는 기능입니다. (이 기능은 LSE 및 HSE 기능이 Mux에서 선택되어야 사용할 수 있습니다.)

< STM32CubeMX 사용방법 - 20 >

Prescaler -클럭의 속도를 조절하는 분주기입니다.
HCLK - AHB 버스에 사용되는 클럭으로 DMA 및 인터럽트 컨트롤러 등 사용합니다.
FCLK Cortex clock - CPU에 사용되는 클럭입니다.
PCLK - APB 버스에 사용되는 클럭으로 WDT, 타이머, ADC 등에서 사용합니다.

< STM32CubeMX 사용방법 - 21 >

undoes last action - 구성 단계를 한 단계 전으로 되돌립니다.
redoes the previous undone action - 실행 취소된 단계를 하나씩 다시 실행합니다.

< STM32CubeMX 사용방법 - 22 >

Resolve Clock issues - 문제가 생긴 경우 Resolve Clock issue 버튼을 클릭하여 문제를 자동으로 해결할 수 있습니다.
문제가 발생한 부분은 빨간색으로 표시가 됩니다.

< STM32CubeMX 사용방법 - 23 >

Project Manager에서 Project는 프로젝트 이름 및 저장경로를 설정합니다.

< STM32CubeMX 사용방법 - 24 >

프로젝트 파일을 생성할 때 필요한 라이브러리만 생성하는 것이 모든 라이브러리를 생성하는 것보다 파일 크기가 작습니다.

< STM32CubeMX 사용방법 - 25 >

< STM32CubeMX 사용방법 - 26 >

< STM32CubeMX 사용방법 - 27 >

Do Not Generate Function Call를 통해 main 문에 함수를 초기화를 시킬지 여부를 결정합니다.
Visibility(static)를 통해 각 생성된 초기 함수의 static 여부를 결정합니다.

읽어주셔서 감사합니다.

profile
기억보다 기록을

0개의 댓글