- Nucleo64 보드에 필요한 개발 플랫폼 선택 및 다운로드
- 회로도 및 하드웨어 설정
- STM32 Nucleo64 개발 보드 용 STM32CubeMX 시작하기
- TrueSTUDIO를 사용하여 STM32 Nucleo64 개발 보드 프로그래밍
- 누름 버튼을 사용하여 LED를 제어하는 STM32 Nucleo64 프로그램
- TrueSTUDIO를 사용하여 STM32 Necleo64 개발 보드에 코드 디버깅 및 업로드
우리 중 많은 사람들이 Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051 등과 같은 인기있는 마이크로 컨트롤러 및 개발 보드에 익숙해야합니다. 사실 대부분의 사람들에게 Arduino는 첫 번째 개발 보드 였을 것입니다. 전문적인 설계를 통해 우리는 곧 Arduino의 한계 (비용, 다양성, 안정성, 속도 등)를 깨닫고 PIC, STM, Renesas 등과 같은보다 네이티브 마이크로 컨트롤러 플랫폼으로 전환해야 할 필요성을 이해할 것입니다.
우리는 이미 PIC 마이크로 컨트롤러 학습을위한 초보자를 안내하는 일련의 PIC 마이크로 컨트롤러 튜토리얼을 다뤘습니다. 마찬가지로이 기사를 시작으로 STM32 플랫폼을 사용하여 학습하고 개발하는 완전 초보자를 도울 수 있는 일련의 STM32 Nucleo64 개발 보드 튜토리얼 도 계획합니다. Nucleo64 개발 보드는 전문 개발자와 애호가를위한 저비용 및 사용하기 쉬운 플랫폼입니다. STM32 Nucleo64 개발 보드 를 완전히 처음 사용하는 경우 계속 진행하기 전에이 Nucleo64 검토 비디오를 확인하여이 보드의 기본 사항을 이해하십시오. 이 비디오는 ARM Mbed 플랫폼을 사용하여 STM32 를 프로그래밍하는 방법도 보여줍니다. 하지만이 튜토리얼에서는 TrueSTUDIO라는 ST Microelectronics의 다른 무료 플랫폼을 사용할 것입니다.
참고: STM32 Nucleo64 개발 보드에는 여러 버전이 있으며이 자습서에서 사용되는 특정 보드는 NUCLEO-F030R8 입니다. 이 보드는 주로 저렴한 비용 때문에 선택했습니다. 버전이 다른 경우에도 튜토리얼에서 설명한 대부분의 내용으로 시작하면 충분합니다.
Nucleo64 보드에 필요한 개발 플랫폼 선택 및 다운로드
모든 마이크로 컨트롤러를 시작하려면 Arduino 보드 용 Arduino IDE, AVR 마이크로 컨트롤러 용 Atmel Studio, PIC 용 MP Lab 등과 같은 프로그래밍 IDE가 필요합니다. 따라서 여기에는 프로그래밍 및 디버깅을 수행하기위한 STM32 Nucleo64 보드 용 IDE도 필요합니다. STM32 제품군은 다음 IDE 및 툴체인을 지원하는 32 비트 마이크로 컨트롤러로 구성됩니다.
- ARM® 용 IAR Embedded Workbench® (EWARM).
- MDK-ARM 케일
- TrueSTUDIO
- STM32 용 시스템 워크 벤치
여기 튜토리얼에서는 TrueSTUDIO 를 사용하여 코드 작성, 컴파일 및 디버깅에 사용할 것입니다. 라이선스 요구 사항없이 상용 프로젝트에서도 무료로 다운로드하여 사용할 수 있기 때문입니다. 그런 다음 STM32CubeMX 를 사용하여 STM32 보드 용 주변 장치 드라이버를 생성하여 쉽게 프로그래밍 할 수 있습니다. 프로그램 (hex 파일)을 개발 보드에 업로드하기 위해 사람들은 일반적으로 STM32 ST-LINK 유틸리티 도구를 사용하지만 대신 TrueSTUDIO 자체를 사용하여이를 수행합니다. TrueSTUDIO에는 프로그래머가 16 진 파일을 STM32 보드에 직접 업로드 할 수있는 디버그 모드가 있습니다. TrueSTUIO와 STM32CubeMX는 모두 쉽게 다운로드 할 수 있습니다. 아래 링크를 따라 등록하고 설정을 다운로드하면됩니다. 그런 다음 랩톱에 설치하십시오.
- STM32Cube MX 다운로드
- TrueSTUDIO 다운로드
회로도 및 하드웨어 설정
소프트웨어 섹션과 코딩을 진행하기 전에이 프로젝트를위한 보드를 준비합시다. 이 기사의 앞부분에서 언급했듯이 푸시 버튼을 사용하여 LED를 제어 할 것입니다. 이제 위에 링크 된 비디오를 본 경우 STM32 개발 보드의 양쪽에 ST Morpho 핀이라는 두 세트의 커넥터 핀이 있다는 것을 이미 알고 있어야합니다. 아래 회로도에 표시된대로 푸시 버튼과 LED를이 핀에 연결했습니다.
이 프로젝트에서는 회로 연결이 간단합니다. GND를 기준으로 PORTA의 PA5에 LED와 PORTC의 PC13에 스위치를 연결해야합니다. 연결이 이루어지면 내 테스트 설정은 다음과 같습니다.
또는 보드에 내장 된 LED와 푸시 버튼을 사용할 수도 있습니다. 이러한 내장 LED와 푸시 버튼도 회로도에 표시된 것과 동일한 핀에 연결됩니다. 연습용으로 만 외부 구성 요소를 추가했습니다. STM32 개발 보드 의 아래 핀 다이어그램은 각 morpho 핀이 온보드에 연결된 위치를 파악하는 데 유용합니다.
STM32 Nucleo64 개발 보드 용 STM32CubeMX 시작하기
1 단계: 설치 후 STM32CubeMX를 시작한 다음 액세스 보드 선택기를 선택하여 STM32 보드를 선택합니다.
2 단계: 이제 NUCLEO-F030R8과 같은 STM32 보드 이름으로 보드를 검색하고 그림에 표시된 보드를 클릭합니다. 다른 보드가있는 경우 해당 이름을 검색하십시오. 이 소프트웨어는 ST Microelectronics의 모든 STM32 개발 보드를 지원합니다.
3 단계: 이제 아래 그림과 같이 예를 클릭하여 모든 주변 장치를 기본 모드로 초기화합니다. 나중에 프로젝트에서 필요에 따라 필요한 항목을 변경할 수 있습니다.
'예'를 클릭하면 화면이 아래 그림과 유사하며 기본적으로 시작되었음을 나타내는 녹색 핀입니다.
4 단계: 이제 사용자는 범주에서 원하는 설정을 선택할 수 있습니다. 이 튜토리얼에서는 푸시 버튼을 사용하여 LED를 토글합니다. 따라서 LED 핀을 출력으로, 스위치 핀을 INPUT 으로 만들어야합니다.
아무 핀이나 선택할 수 있지만 PA5를 선택 하고 상태를 GPIO_Output 으로 변경 하여 아래 그림과 같이 출력 핀으로 작동합니다.
마찬가지로 푸시 버튼의 상태를 읽을 수 있도록 GPIO_Input으로 PC13을 선택하고 있습니다.
또는 아래 그림과 같이 핀 배치 및 구성 탭 에서 핀을 구성 할 수도 있습니다.
5 단계: 다음 단계에서 사용자는 외부 및 내부 발진기에 따라 마이크로 컨트롤러 및 핀에 대해 원하는 주파수를 설정할 수 있습니다. 기본적으로 내부 8MHz 수정 발진기 가 선택되며 PLL을 사용하면이 8MHz 가 48MHz로 변환됩니다. 기본적으로 STM32 보드 또는 마이크로 컨트롤러 및 핀은 48MHz에서 작동합니다.
6 단계: 이제 프로젝트 관리자로 이동하여 프로젝트 이름, 프로젝트 위치를 지정하고 도구 모음 또는 IDE를 선택합니다. 여기서는 TrueSTUDIO를 사용하고 있으므로 아래와 같은 것을 선택했습니다.
7 단계: 이제 아래 그림에서 빨간색 원으로 코드 생성 표시를 클릭합니다.
8 단계: 이제 주어진 팝업이 표시되면 프로젝트 열기를 클릭합니다. 그러나이 단계 전에 TrueSTUDIO를 설치했는지 확인하십시오.
TrueSTUDIO를 사용하여 STM32 Nucleo64 개발 보드 프로그래밍
이제 TrueSTUDIO가 작업 공간 위치를 요청한 다음 작업 공간 위치를 제공하거나 기본 위치로 이동하면 코드 또는 프로젝트가 TrueSTUDIO에서 자동으로 열립니다.
사용자는 아래에 주어진 화면을 볼 수 있으며 빨간색으로 표시된 모서리 표시를 클릭해야합니다.
이제 TreuSTUDIO IDE에서 코드를 볼 수 있습니다. 'src'폴더 아래 왼쪽에는 STM32Cube에서 이미 생성 된 다른 프로그램 파일 (확장자.c)을 볼 수 있습니다. main.c 파일 만 프로그래밍하면됩니다. main.c 파일에서도 CubeMX에 의해 우리를위한 설정이 거의 없을 것입니다. 우리 프로그램에 맞게 편집하기 만하면됩니다. main.c 파일의 전체 코드는이 페이지 하단에 있습니다.
누름 버튼을 사용하여 LED를 제어하는 STM32 Nucleo64 프로그램
필요한 모든 드라이버와 코드가 STM32CubeMX에 의해 생성되므로 LED 핀을 출력으로, 푸시 버튼을 입력으로 구성하기 만하면됩니다. 누름 버튼을 사용하여 LED를 제어하는 프로그램은 main.c 파일에 작성되어야합니다. 전체 프로그램은이 페이지 하단에서 찾을 수 있습니다. 이에 대한 설명은 다음과 같습니다.
푸시 버튼을 사용하여 LED를 토글하는 코드 만 작성했습니다. 이를 위해 먼저 LED 및 푸시 버튼 용 핀을 정의합니다. 여기서는 PORTA의 핀 5 번호에 LED를 정의했습니다.
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
그리고 PORTC의 핀 번호 13에서 스위치를 정의하십시오.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
그런 다음 주 기능에서 사용 된 모든 주변 장치를 초기화했습니다.
/ * 구성된 모든 주변 장치를 초기화합니다. * / MX_GPIO_Init (); MX_USART2_Init ();
그런 다음 if 문을 사용하여 푸시 버튼을 읽고 버튼이 발견되면 (LOW)를 누르면 LED가 상태를 전환합니다.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * 사용자 코드 시작 3 * /}
여기서 HAL_GPIO_ReadPin (SW_PORT, SW_PIN) 함수에는 두 개의 인수가 있습니다. 하나는 PORT이고 다른 하나는 스위치가 연결된 핀이며이 핀은 STM32CubeMX에서 주변 장치를 구성하는 동안 INPUT으로 구성됩니다.
TrueSTUDIO를 사용하여 STM32 Necleo64 개발 보드에 코드 디버깅 및 업로드
이제 프로그래머 케이블을 사용하여 보드를 컴퓨터에 연결하십시오. 연결하면 보드에 필요한 드라이버가 자동으로 다운로드되며 장치 관리자를 통해 확인할 수 있습니다.
그런 다음 아래 그림에서 빨간색 원으로 표시된 디버그 아이콘을 눌러 프로그램을 컴파일하고 디버그 모드로 들어갑니다.
디버그 모드에서는 코드가 자동으로 업로드됩니다. 이제 'Resume'또는 F8 (아래 그림에서 빨간색 회로로 표시됨)을 눌러 코드를 실행해야합니다.
이제 푸시 버튼을 눌러 LED 제어를 테스트 할 수 있습니다. 코드에 따르면 LED는 누름 버튼을 누를 때마다 상태를 변경해야합니다. 완전한 작업은이 페이지 하단에 링크 된 비디오에서도 찾을 수 있습니다.
테스트 후 아래 그림에서 빨간색 원으로 표시된 종료 아이콘을 눌러 프로그램을 종료 할 수도 있습니다.