Brise
STM32F429-DISC1 디스커버리 보드 BSP와 CubeMX 연동하여 사용하기 본문
디스커버리 보드의 BSP는 사용자에게 여러 기능들을 편리하게 사용할 수 있는 기능들을 제공하지만, 예제 프로젝트가 CubeMX기반이 아니다 보니 유저가 설정을 추가하거나 바꾸기 힘든 부분이 있습니다.
때문에 CubeMX로 생성하고 BSP설정을 추가하는 노가다를 해야하는데, 이 부분의 수고를 덜기 위해 CubeMX프로젝트에 BSP을 추가하여 연동하는 방법을 이 포스트에서 소개합니다.
전체 프로젝트를 올리면 편하겠지만, 용량 문제로 필요한 파일만 업로드 합니다.
1. CubeMX를 설치합니다.
2. 첨부된 파일을 이용하여 프로젝트 코드를 생성합니다. (프로젝트 생성 디렉토리 변경 필요)
3. 생성된 프로젝트를 엽니다.
4. BSP 관련 파일을 추가합니다.
C:\Users\${UserName}\STM32Cube\Repository\STM32Cube_FW_F4_V1.17.0\Drivers\BSP
폴더를 프로젝트의 Drivers 폴더 아래에 복사
C:\Users\${UserName}\STM32Cube\Repository\STM32Cube_FW_F4_V1.17.0\Utilities
폴더를 프로젝트 아래 복사
후 관련 있는 폴더만 남깁니다.
BSP/Components
BSP/STM32F429I-Discovery
Utilities/Fonts
5. 프로젝트 설정 변경
Properties --> C/C++ Build --> Behavior 탭 --> Enable parallel build 체크
Properties -> C/C++ General --> Paths and Symbols --> Source Location
Add Folder에 Utilities 폴더 추가
Utilties/Fonts 아래 있는 font*.c 파일 선택(fonts.h 빼고 나머지)
마우스 오른쪽 버튼 누르고 Resource Configuration--> Exclude from build-->Select All--> OK
Properties -> C/C++ General --> Paths and Symbols --> Includes --> Languages에서 GNU C 선택
--> Add.. --> Drivers/BSP/STM32F429I-Discovery 추가
6. BSP 테스트 코드 추가
main.c에서
/* USER CODE BEGIN Includes */
#include "stm32f429i_discovery.h"
#include "stm32f429i_discovery_lcd.h"
#include "stm32f429i_discovery_ts.h"
/* USER CODE END Includes */
/* USER CODE BEGIN 2 */
BSP_LED_Init(LED3);
BSP_LED_Init(LED4);
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(LCD_BACKGROUND_LAYER, LCD_FRAME_BUFFER);
BSP_LCD_LayerDefaultInit(LCD_FOREGROUND_LAYER, LCD_FRAME_BUFFER);
BSP_LCD_SelectLayer(LCD_FOREGROUND_LAYER);
BSP_LCD_DisplayOn();
BSP_LCD_Clear(LCD_COLOR_WHITE);
BSP_LCD_SetTextColor(LCD_COLOR_DARKGRAY);
/* USER CODE END 2 */
/* USER CODE BEGIN WHILE */
while (1)
{
BSP_LCD_SetTextColor(LCD_COLOR_DARKGRAY);
BSP_LCD_DisplayStringAtLine(1,(uint8_t*)"TEST LINE 1");
BSP_LED_Toggle(LED3);
HAL_Delay(1000);
BSP_LCD_Clear(LCD_COLOR_WHITE);
BSP_LED_Toggle(LED4);
char str[100] = "ST-Link VCP\n\r";
HAL_UART_Transmit(&huart1, str, strlen(str), 0xFFFF);
HAL_Delay(1000);
/* USER CODE END WHILE */
이후 빌드 후 플래싱 하여 테스트합니다.
STM32F429I-DISC1에서는 ST-LINK를 이용한 VCP를 지원합니다.
장치관리자에 있는 STMicroelectronics STLink Virtual COM Port(COM??)에 맞는 포트를 찾아 UART연결(여기서는 115200 baudrate)하면 메세지가 뜹니다.
'MCU' 카테고리의 다른 글
STM32F411RE-nucleo Printf 예제 (0) | 2017.12.05 |
---|---|
STM32F411RE-nucleo Standard Peripheral UART 예제 (0) | 2017.12.05 |
STM32F401RE-nucleo CMSIS UART 예제 (0) | 2017.12.05 |
[STM32CubeMX] STM32F429-DISC0 엔코더값 입력받기(quadrature encoder pulse) -2 (0) | 2017.04.29 |
[STM32CubeMX] STM32F429-disc0 엔코더값 입력받기(quadrature encoder pulse) -1 (0) | 2017.04.28 |
[STM32CubeMX] STM32F429-DISC0 LCD 출력하기 (0) | 2017.04.27 |
[atmega128] RC servo 예제 (0) | 2017.04.22 |