STM32/STM32H7-GFX

STM32H7-GFX보드 사용하기 1편(기본프로젝트세팅,LED,UART)

원원 2024. 2. 17. 23:10

안녕하세요. 오늘은 STM32H7-GFX 보드를 사용해 보겠습니다.
해당 보드는 BARAM 님이 개발하신 거고 BARAM 님의 강좌를 참고해서 제가 기억하고 싶은 내용을 기록할 예정입니다.
최종 목표는 LCD,터치센서,마이크,스피커 사용방법을 익히고 이러한 기능을 사용해서 리듬게임을 만드는 것입니다.
https://blog.naver.com/chcbaram/223323827781

https://smartstore.naver.com/higenis/products/9107440057
위의 사이트에서 해당 제품을 구매했고 전원만 넣었을 때 사진입니다. 기본 FW가 들어가 있어서 LCD 동작 여부를 확인할
수 있었습니다. 보드에 ST-LINK가 포함되어 있지 않으므로 ST-LINK는 따로 준비를 해야 합니다. ST-LINK3도 사용가능하게 보드에 나와있으므로 ST-LINK3을 사용하면 쉽게 SWD와 UART사용이 가능합니다.

 


*프로젝트생성
stm32cubeide에서 프로젝트를 생성합니다. STM32H723ZGT6

peripheral초기화코드 분리를 위해 체크해줍니다


*하드웨어설정
1.CLOCK설정
보드에 25Mhz 크리스탈이 달려있으므로 Crystal/Ceramic Resonator로 설정합니다

해당설정을하면 외부클럭을 사용하고 메인클럭은 550MHz로 설정합니다

 

2.디버깅설정
디버깅을 위해 SWD설정과 UART설정을 합니다. SWD블럭에 USART1이 나와있으므로 USART1도 설정합니다.
USART1 설정은 디폴트로 놔둡니다 (115200bps, 8bit, non parity, 1stop bits)


3.LED설정
보드에 주황색 LED가 PG3포트에 연결되어있습니다. 

PG3포트를 output 설정해줍니다.



*FW작성
code generator를하면 설정한대로 clock속도를 설정해주고 gpio output설정을 해주고 uart 사용설정을 해주고 swd 사용설정을 해줍니다. LED toggle과 printf함수를 이용해서 uart transmit를 해보겠습니다

1.LED toggle
main.c의 while문에 Toggle함수와 딜레이를 넣어줍니다. 그럼 0.1초마다 LED가 점멸합니다.


2. printf-uart설정
printf함수를 사용하기위해서 stdio.h 헤더파일을 include합니다

printf함수를 호출하면 syscall.c에있는 _write가 호출됩니다. printf를 사용할때 uart로 transmit을 보낼것이므로 _write함수안에 uart transmit 함수를 넣어주면 됩니다. 


huart1변수를 사용할것이므로 usart.h을 include합니다


main.c의 while문에 코드를 작성합니다. LED가 0.1초마다 점멸하고 cnt값을 증가시켜서 uart로 보내줍니다.
여기서 cnt를 static으로 선언한 이유는 cnt를 0으로 한번만 초기화하기 위함입니다



결과

위의 동영상처럼 보드에는 ST LINK3+전원케이블(C type)을 연결해주면 됩니다.