2019. 6. 11. 04:12ㆍ임베디드/32F429IDISCOVERY
[출처] https://cafe.naver.com/stm32study
위 카페에서 진행하는 STM32 세미나를 통해 얻은 내용들을 바탕으로 재구성했다
개발환경
1. Atollic TrueSTUDIO for STM32 9.3.0
2. STM32CubeMX 5.2.1
3. ST_HAL_Library
이 포스팅에서 진행하는 예제는 2, 3번을 사용하지않는 직접 레지스터에 작성하게 된다
1. Atollic TrueSTUDIO을 열고, 새로운 C 프로젝트를 생성한다
2. Embedded C project로 새로운 프로젝트를 생성한다. 그리고 타겟 하드웨어를 stm32f429ZI로 설정한다. 기본 설정은 default로 하고 넘어간다. 또 TrueSTUDIO 소프트웨어 구성도 넘어가고, 디버거는 내장되어 있는 stlink로 사용할 것이기 때문에 수정을 꼭 해주자. 그리고 완료를 눌러주자
3. 소스코드를 작성할 것이다. 미리 말했듯이 레지스터 주소에 직접 작성하는 것이라 어떠한 헤더파일에도 의존하지 않는 프로그램 작성이다. 따라서 생성된 src 폴더에 main.c에 있는 모든 내용들은 지우고 다음과 같이 타이핑을 한다. 다만, volatile 주제로 논의한 것이 있어 volatile로 설정은 마음이지만 기입을 추천한다
*만일 optimization level이 -Os라면 레지스터, delay 함수 모두 최적화된다
[링크] https://cafe.naver.com/stm32study/1178 내용과 [현수]님의 댓글을 참고하자
소스코드의 내용은 간략하게 2가지를 설정하고 있다
1. GPIO를 실행하려면 GPIO가 위치한 버스를 활성화해야한다. 활성화는 결국 클럭을 동작시키는 것이다. 이 부분이 RCC_AHB1ENR다. GPIOG는 AHB1 버스에 위치해 있다. 메모리 맵을 참고해보자
2. GPIO 출력모드에 대한 설정을 하고, toggle을 하는 예제다
이론적인 내용은 따로 포스팅을 해보도록 하겠다
'임베디드 > 32F429IDISCOVERY' 카테고리의 다른 글
32F429IDISCOVERY UART TX/RX (0) | 2019.06.15 |
---|---|
32F429IDISCOVERY TrueSTUDIO에서 SPL로 GPIO 제어 (0) | 2019.06.15 |
GPIO SPEED (0) | 2019.06.11 |
32F429IDISCOVERY에 리눅스 포팅 준비 (0) | 2019.06.11 |
CubeMX에서의 프로젝트 생성과 Truestudio에서 직접 프로젝트 파일 생성의 차이 (0) | 2019.06.09 |