STM32CubeIDE 에서 프로젝트 생성 방법
사전 준비
1. PC 에 STM32CubeIDE 설치된 상태
2. ST LINK V2 를 PC 에 연결하고 하기 타겟보드에 연결.
3. 타겟칩 . (본 예에서는 STM32L4R5VI 사용. 타켓칩 품번이 무엇이든 전체적인 방법론은 동일) 이 장착된 타겟 보드.
- 본 예에서는 아래 사진의 보드 . 24MHz 외부 크리스탈 장착되어있고 32.768kHz 는 장착 가능한 패드는 마련되어있으나 부품 장착은 하지 않았음. 전원 공급은 마이크로 USB 커넥터로 이뤄지고 3.3 V 레귤레이터 출력 전압이 MCU 로 공급됨.
* 기타 : 프로젝트에서 만든 펌웨어 칩에 기록하지 않고 프로젝트 생성만 하는 경우에는 타겟보드와 ST-LINK V2 는 없어도 됨.
ST-LINK V2 와 타겟보드 연결 사진
- ST LINK V2 의 기본 제공되는 보드 연결 커넥터는 무식하게 크다. 타겟보드를 소형으로 만드는 경우에는 소형 커넥터를 보드에 마련하고, ST-LINK V2 연결은 별도의 변환 보드 직접 만들어서 활용중.
사족 : 임베디드 펌웨어 개발하다보면 PCB 제작, 부품장착 능력은 기본 소양에 해당한다. 요즘은 무료 PCB 제작툴 도 활용 가능하고 PCB 제작 수단, 양산 부품장착 SMT 마저도 온라인으로 쉽게 주문 가능하므로 별 어렵지 않은 일이 되어버렸음. 과거엔 최소한 3명 이상의 사람이 요구되었던 일들이 점점 1인이 모든 것들을 전부 수행가능할 정도로 솔루션 인프라가 구축되고 있는 중. 바꿔 이야기 하면 ... 1인 맨파워 만으로도 생존 가능한 세상으로 바뀌고 있는것 같다.
무료 PCB 제작툴 예 : EasyEDA , PCB 및 부품 장착 관련 통합 정리 글 ,
STM32CubeIDE 에서 프로젝트 생성 방법
STM32CubeIDE 메뉴 : FIle - New - STM32 Project 클릭하면 가장 먼저 타겟 선택 창이 뜬다(아래그림)
왼쪽 화면의 Part Number 에 STM32 품번 (본 예에서는 STM32L4R5VI )기록 하면, 오른쪽 화면에 해당 품번에 해당하는 리스트가 보인다.여기서 칩 선택하고 버튼 Next 클릭하면 아래 화면처럼 프로젝트 이름 기록 및 기본 옵션 선택창이 뜬다.
옵션 중 C, C++ 은 컴파일러 선택인데, 프로젝트 생성 이후에도 C C++ 변경 가능하다. 생성된 프로젝트에서 C, C++ 변경 방법 상세보기.
Binary Type : Executable 은 칩에 기록되어 실행 가능한 형식이며, static library 는 다른 Executable 프로젝트에서 라이브러리 형식으로 활용하고자 할때 선택한다.
위화면에서 Next 클릭하면 아래처럼 창이 뜬다. 기본 상태에서 수정할건 없다.
위 화면에서 버튼 Finish 클릭하면 기본 코드까지는 작성되어있는 프로젝트 생성 완료된다(아래그림).
프로젝트 생성 이후 작업 방식
위 프로젝트 파일들 중에서 확장자 .ioc 가 STM32CubeMX 파일이고 위 화면의 오른쪽이 STM32CubeMX 화면이다.
이곳에서 STM32 설정(클럭, SPI, I2C, ADC, Timer, GPIO ... 등 사용할 페리페랄들 설정)하여 해당 설정된 상태에 해당하는 소스 코드 자동 생성하게 하고(방법 . 메뉴 : Project - Generate Code 클릭), 해당 설정된 것들을 활용하는 코드 작성 추가 하고, STM32 에 기록하면서 동작확인한다.
STM32CubeMX 에서 가장 먼저 설정하는 것.
- 아래 디버거 설정과 클럭 설정은 항상 요구되는 필수 설정. 그외 사용되는 GPIO, 페리페랄들은 필요한 것들만 설정한다.
1. 디버거 설정.
2. 클럭 설정.
타겟보드에 STM32 에 연결된 외부 크리스탈이 있고 이를 활용하는 경우
외부크리스탈 사용 하는 경우에는 STM32CubeMX 에서 RCC 설정 필수 해야 한다.
외부 크리스탈 없는 경우
- 앞의 외부 크리스탈 있는 경우에 설정했던 RCC disable 상태로 두고 내부 클럭 소스로 구동하는 것으로 설정한다.
- 보드에서 외부크리스탈이 장착되어 있어도, RCC disable 하여 사용하지 않아도됨.
클럭 설정시 페리페랄에 따라 제한 사항 있음
앞의 클럭 설정 과정을 보면 MUX 나 PLL 등의 설정이 사용자 임의로 설정해도 되는 것 처럼 보이나, 앞의 예에서의 클럭 설정은 페리페랄들을 enable 하지 않은 상태라서 자유로와 보일 뿐이다.
사용하는 페리페랄에 따라 클럭 설정 오류가 발생할 수 도 있으며 STM32CubeMX 에서 오류 있는 경우 표시되므로 해당 오류 상황마다 대응해서 클럭 설정해야한다.
예 : USB 사용시 클럭 설정법 : https://igotit.tistory.com/4703
연관
상위정리
https://igotit.tistory.com/244 의 STM32
첫 등록 : 2023.07.11
최종 수정 : 2023.07.13
단축 주소 : https://igotit.tistory.com/4697
'임베디드.일렉트로닉스 > STM32' 카테고리의 다른 글
STM32CubeIDE . Debug . SWV 활성화 . 데이터 그래프로 보기 (0) | 2023.07.14 |
---|---|
STM32CubeIDE . 오류 해결 . Debug . No source available for "main() at 0x8000262" (0) | 2023.07.14 |
STM32CubeIDE. (0) | 2023.07.04 |
STM32L4R/S. I2C (0) | 2021.03.12 |
STM32WBx5. STM32 Wireless MCU . BLE5.2 (0) | 2021.03.07 |
댓글