# STM32F429I-DISCOVERY
# STM32F429ZIT6 (144Pin / 180Mhz)
# FreeRTOS (RTOS)
# GPIO (LED)
# 2017.06.13 Clock 설정 부분 수정하였음. 25Mhz → 8Mhz
• CubeMX에서 간단한 GPIO Pin 설정, Clock, 설정, FreeRTOS 포팅하는 방법을 기술하였습니다.
• CubeMX를 통해서 FreeRTOS를 쉽게 포팅하고, LED를 제어하는 방법을 기술하였습니다.
• New Project → STM32F4 → STM32F429/439 → LQFP 144 → STM32F429ZITx
• 또는 New Project → STMicroelectronics → Discovery → STM32F4 → STM32F429I-DISC1 선택
필자는 개발보드를 선택하지 않고 STM32F429ZITx 선택하여 기술하였습니다.
• LED는 PORTG 13, 14번에 연결되어 있습니다.
• PG13, PG14를 클릭하고, GPIO_Output 를 클릭합니다.
• Debug Pin 설정
PA13, PA14 Pin를 JTCK-SWCLK, JTMS-SWDIO 설정하지 않을 경우 디버그를 하지 못하게 됩니다.
• Configuration → Peripherals → SYS → Debug → Serial Wire로 선택합니다.
• Pin 색이 초록색으로 변경되는 것을 확인합니다.
• Clock Pin 설정
회로도에는 PH0, PH1 Pin에 연결되어 있습니다.
• PH0 "RCC_OSC_IN", PH1 "RCC_OSC_OUT"으로 선택합니다.
• Configuration → Peripherals → RCC → High Speed Clock (HSE) → Crystal/Ceramic Resonator으로 선택합니다.
Pin 설정을 완료한 화면입니다.
• Clock를 설정합니다. 해당 CPU는 최대 180Mhz으로 동작합니다.
• Input Frequency을 입력합니다. * DISCO Board는 Crystal 8Mhz를 사용함.
HSE, PLLCLK를 선택하고, HCLK (Mhz)를 180을 입력합니다. 또는 원하는 속도롤 변경합니다. PLL Source Mux를 자동으로 설정됩니다.
• FreeRTOS 포팅
FreeRTOS 포팅 방법은 Configuration → FREERTOS를 체크하는 것으로 끝입니다.
• GPIO 설정
GPIO 버튼을 클릭합니다.
PG13, PG14 Pin을 아래와 같이 설정합니다.
• Generate Code
Project → Generate Code 버튼을 클릭합니다.
• Project Settings
Project Name, Location 설정합니다.
# 설정에 대한 설명은 추 후 기술하기로 하겠습니다.
# 설정에 대한 설명은 추 후 기술하기로 하겠습니다.
• Main Project Settings
코드 생성 후 초기 화면입니다.
• 코드 입력
freertos.c → StartDefaultTask() 함수에 아래 코드를 입력합니다.
#include "stm32f4xx_hal.h"
HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_13);
osDelay(500);
HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_14);
osDelay(500);
• Compile
F7 또는 Project → Make를 클릭합니다.
• Download and Debug
Ctrl + D 또는 Project → Download and Debug / Debug without Downloading을 클릭합니다.
• 실행
F5 또는 Debug → Go를 클릭합니다.
• Debug 종료
Ctrl + Shift + D 또는 Debug → Stop Debugging을 클릭합니다.
끝.