STM32CubeIDE를 사용하여 STM071G32RB 보드 기반 프로젝트 시작하기

STM32CubeIDE를 사용하여 STM071G32RB 보드 기반 프로젝트 시작하기

체크 아웃 우리 제어 보드!

32비트 ARM 기반 마이크로컨트롤러를 시작하는 것은 항상 약간 어렵습니다. 사용 가능한 마이크로컨트롤러, 플랫폼, 개발 보드, 도구 및 소프트웨어가 너무 많습니다. 이 노트는 LED 프로젝트를 시작하는 방법을 단계별로 설명합니다.

시작하기: 개발 보드 STM32G071RB 정보

특징:

  • 코어: Arm® 32비트 Cortex®-M0+ CPU, 최대 64MHz 주파수
  • 최대 128KB의 플래시 메모리, 36KB의 SRAM
  • 유연한 매핑이 가능한 7채널 DMA 컨트롤러
  • 12비트, 0.4µs ​​ADC(최대 16개의 확장 채널)
  • 12개의 XNUMX비트 DAC, 저전력 샘플 앤 홀드
  • 2개의 IXNUMXC, XNUMX개의 USART, XNUMX개의 저전력 UART, XNUMX개의 SPI

 

시작하기: STM32CubeIDE 설치

당신은 다운로드 할 수 있습니다 STM32큐브IDE 그들의 st.com에서. 무료입니다. 다음 STM32CubeIDE 설치 STM32CubeIDE 설치 가이드.

 

첫 번째 프로젝트: LED 깜박임

코드 작성을 시작하기 전에 프로젝트를 생성해야 합니다. 이는 대부분의 다른 IDE와 유사합니다. 프로젝트는 모든 설정, 코드 및 정의를 동일한 애플리케이션에서 모두 관리되는 단일 컬렉션으로 함께 묶는 데 사용됩니다.

 

 

1단계: 새 프로젝트 시작, 왼쪽 상단 아이콘(또는 메뉴 파일 > 새로 만들기 > STM32 프로젝트 아래)에서 시작합니다.

 

2단계: 프로젝트 이름: G0_LED, 마침 버튼을 클릭합니다.

회로도에서 LED4는 STM32G071에 의해 제어되고 포트는 PA5입니다.

3단계: System Core > SYS에서 Serial Wire를 선택하고 PA5를 GPIO_OUTPUT으로 설정합니다.

아래와 같이 PA5의 사용 레이블을 LED_GREEN으로 설정합니다.

 

4단계: 그런 다음 코드를 생성합니다.

 

이 기능을 기반으로 개발된 CubeIDE는 Src 디렉터리에서 작업할 C 파일을 생성하고 HAL(하드웨어 추상화 계층)을 포함 디렉터리에 넣습니다. CubeIDE는 똑같은 방식으로 작동하는 것 같습니다. 프로젝트 보기 아래 오른쪽에 있는 폴더를 확장하고 생성된 내용을 확인하십시오.

 

 

5단계: 이제 우리 고유의 C 코드를 약간 추가해 봅시다! 무한 루프 영역 다음에 아래와 같이 섹션 3에서 LED를 토글하는 코드를 추가할 것입니다.

 

 

프로젝트 컴파일 및 보드에 다운로드

STM32CubeIDE를 사용하면 실제로 작업을 컴파일하고 STM32 칩으로 가져오기가 매우 쉽습니다. 첫 번째 단계는 컴파일된 .elf(우리 코드의 바이너리 버전)를 생성하는 것입니다. .elf를 생성하려면 빌드를 해야 합니다. 이것은 도구 모음에서 빌드 버튼을 누르는 것만 큼 쉽습니다.

이제 화면 하단의 콘솔에 빌드 정보가 표시됩니다.

이제 우리가 원하는 것은 이 컴파일된 바이너리를 STM32 마이크로컨트롤러로 보내는 것입니다.

개발 키트를 연결해 보겠습니다.

빨간색 전원 LED(파란색 스위치 왼쪽)와 더 큰 통신 LED(USB 케이블 사용)가 켜집니다. STM32CubeIDE 내부에서 실행 버튼을 선택합니다.

이렇게 하면 실행 대화 상자가 열립니다(처음 실행했기 때문에). 지금 선택하는 설정은 나중에 다시 사용하거나 편집할 수 있는 실행 구성으로 저장됩니다.

적용을 누르고 확인을 누르면 다운로드가 진행됩니다. 이제 콘솔이 몇 가지 흥미로운 텍스트로 채워집니다.

LED는 500ms마다 켜지고 꺼집니다. 모든 설정이 완료되었습니다.

STM32 대 아두이노

STM32 대 아두이노

체크 아웃 우리 제어 보드!

 

아두 이노

Arduino는 더 창의적이고 특정 하드웨어의 작동을 약화시키고 기능과 구문이 매우 간단하며 매우 "바보"입니다.

Arduino의 주요 제어 기능의 대부분은 AVR 마이크로 컨트롤러입니다. Arduino의 장점은 높은 코드 캡슐화와 적은 문장으로 소프트웨어 개발의 어려움을 줄여준다는 것입니다.

Arduino는 약간의 하드웨어와 C++만 이해하면 개발할 수 있으므로 비교적 시작하기 쉽습니다.

아두이노의 대부분의 기능은 라이브러리가 잘 구축되어 있어 사용이 매우 간편하지만 조금 더 복잡한 기능은 제어성이 떨어진다. 

 

STM32

STM32는 엔지니어링 실습에 더 많은 관심을 기울입니다. 실제로 공장에는 온도 컨트롤러, 일반 모터 컨트롤러, 저가형 PLC 및 일부 민간 장난감, 게임 컨트롤러, 유선 키보드 및 마우스, 기타 주변 장치 등과 같은 간단한 도구가 많이 있습니다. 매우 실용적입니다.

STM32는 주로 전문 개발자를 위한 제품으로 특정 전문 지식이 필요한 제품으로 사용되지만, 동시에 기능을 구현하기 위한 코드를 작성하는 것은 상대적으로 복잡합니다. 예를 들어 직렬 포트는 간단한 문자열을 출력합니다. Arduino의 경우 새로운 프로젝트에서 시작할 수 있으며 10줄의 코드로 구현할 수 있습니다. 그러나 Keil과 같은 STM32 개발 도구를 사용하는 경우 수백 줄 이상의 코드가 필요할 수 있습니다.

오픈 소스의 관점에서 STM32로 만든 것은 오픈 소스를 원하면 오픈 소스가 될 수 있고, 오픈 소스를 원하지 않으면 아무 것도 퍼블리싱할 수 없습니다.

 

결론

 

다음은 선택에 대한 몇 가지 제안입니다.

프로그래밍 언어에 대한 깊은 이해가 없는 대학 수준 이하의 평범한 학생이라면 아두이노부터 시작해보는 것을 추천합니다. C 스킬이 약하고 STM32가 떠오른다면 곧 포기할 생각이 들 것이다.

취업만을 위한 공부라면 단호히 STM32 마이크로컨트롤러.

재미로 배우고 전자 전공도 아니고 자신이 없다면 아두이노를 추천합니다.

프로그래밍 능력이 좋으면 STM32를 추천합니다. 완료한 후 Arduino 오픈 소스 커뮤니티에서 만든 것을 살펴보고 STM32로 쉽게 완료할 수 있습니다.

물론 능력이 있으면 둘 다 연락할 수 있습니다. 일반적으로 Arduino의 기본 기능은 일주일 이내에 마스터할 수 있습니다. 향후 필요하다면 아두이노 코드를 STM32와 같은 MCU 플랫폼에 자유롭게 이식할 수 있습니다.

사실, 둘은 실제로 약간 다른 방향을 겨냥하고 있습니다. Arduino는 일반 전자 애호가 및 DIY의 선택이며 STM32는 실제 제품의 개발 및 제조에 자주 사용됩니다.