2019. 6. 2. 07:16ㆍ임베디드/32F429IDISCOVERY
[출처] https://cafe.naver.com/stm32study
위 카페에서 진행하는 STM32 세미나를 통해 얻은 내용들을 바탕으로 재구성했다
개발환경
1. Atollic TrueSTUDIO for STM32 9.3.0
2. STM32CubeMX 5.2.1
3. ST_HAL_Library
※ 처음 실행시에는 MCU에 대한 라이브러리 파일이 없기 때문에 필요시에 자동적으로 cubeMX가 서버에서 파일을 받아오기 때문에 시간이 평소보다 조금 더 걸린다. 그리고 반드시 사전에 st-link driver을 설치해서 연결에 문제가 없도록 한다. 연결이 잘 되었다면 debug 포트와 가상 com 포트 모두 잡혀야 한다
1. CubeMX 실행 후 "ACCESS TO MCU SELECTOR" 클릭
2. 사용하는 MCU 작성 및 즐겨찾기 추가 후 Refernece 더블 클릭, 즐겨찾기를 추가 후 Filter에서 즐겨찾기를 검색하면 자신의 MCU가 나올 것이다
3. 간단한 GPIO 테스트를 위해서, GPIO 하나만 열도록 할 것이다. 메인 화면에서 MCU에 마우스를 옮기고 휠을 올리면 확대가 된다. 거기서 LED가 있는 PG13을 GPIO_OUTPUT으로 설정한다
4. Clock Configuration으로 가면 GPIO와 관련한 클럭 주파수를 설정할 수 있다. GPIO 관련 주파수는 HSI RC에서 제공하는 클럭을 시작으로 분주없이 그대로 제공하는 것으로 보인다. 사용자가 상황에 맞춰서 분주비를 GUI로 조절할 수 있다
5. Project Manager로 넘어가 프로젝트 이름을 작성하고 적절한 경로를 설정한다. 그리고 IDE 환경은 TrueStudio를 사용할 것이다
6. Code Generator 항목으로 넘어가 사용자 기호에 맞게 설정한다
중간에 있는 Generate file은
1번은 각종 ppp에 대한 소스와 헤더를 모두 구분지어서 보고싶을 때 선택하면 된다. 파일의 수는 많아지지만 보기 편리하다는 장점이 있다
2번은 백업 용도로 의미한다
3, 4번은 기본 default 설정으로 굳이 해제하지 않는 것이 좋다.
1, 2번은 사용자 기호에 맞춰서 하되 지금은 단순한 GPIO 실험이기 때문에 default로 설정하고 넘어가기로 한다
7. Generate Code를 클릭한다
8. TrueStudio 화면이 저와 같이 이상하게 뜬다면, View 항목에 프로젝트 탐색기를 클릭한다. 오른쪽 아래에 생기는 것이 보인다. 그리고 프로젝트 탐색기 탭을 길게 눌러서 왼쪽으로 옮겨온다. 그리고 나머지 화면들은 일단은 모두 최소화를 시켜 놓는다
9. 지금 당장 사용될 main.c와 HAL_Driver의 위치를 숙지하는 것이 좋다
10. cubeMX에서 설정한 LED를 on/off하는 코드를 간단하게 작성해보도록 한다. 그런데 어떤 함수를 써야하는가? 먼저 View에서 아웃라인을 켜서 오른쪽 공간에 추가를 한다. 그리고 HAL_Driver에서 GPIO 관련 c파일을 열어본다
열었으면, 아웃라인으로 어떤 함수가 있는지 확인할 수 있다. HAL_GPIO_Init은 이미 main.c에서 MX_GPIO_Init()에 포함이 되어있기 때문에 핀에 써주기만 하면 된다.
HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) 함수를 사용할 것이고 안에 세부적인 구조체들은 다음 기회에 뜯어보기로 하고 이 장에서는 실행 위주로 한다. 아웃라인에 있는 함수명을 클릭하면 그 위치로 갈 수 있다. 그래서 최대한 오타를 줄이고자 함수명은 Copy and Paste가 제일 좋은 것 같다
위와 같이 작성하되
1. Ctrl + Space를 누르면 함수 타이핑 중간에 자동완성란이 뜬다. 적절하게 선택을 한다
2. 반드시 USER CODE BEGIN ~ USER CODE END 사이에 작성해야만 다시 cubeMX를 통해 다시 generate할 때 코드가 지켜진다. 다른 곳에 작성을 하면 코드가 사라지는 불상사가 생긴다
11. 빌드 후 실행파일(.elf)을 생성하고 flash를 하는 과정을 할 것이다. 빌드는 망치버튼을 누른다
이후 빌드가 완료된 flash를 하기 위해 디버그 버튼을 누른다.
그리고 바로 적용을 누른다. 그리고 디버그 모드로 진입하게 되는데, 디버깅은 다음 장에서 다루기로 하고 일단 1초 점멸이 잘 되는지 확인하기 위해 재개를 누르면 결과값을 바로 확인할 수 있다
'임베디드 > 32F429IDISCOVERY' 카테고리의 다른 글
Truestudio 단축키 7개 (0) | 2019.06.05 |
---|---|
Truestudio에서 다운로드만 하기 (0) | 2019.06.04 |
펌웨어 내부구조 (0) | 2019.05.26 |
cmsis란 (0) | 2019.05.03 |
mbed 펌웨어 (0) | 2019.05.03 |