만들어서 실습한 Touch GFX 화면은 위와 같다.
Button Label : 0~9, del과 send
그리고 왼쪽 빈칸의 text AREA가 존재하는데, LCD 터치 스크린을 통해 숫자를 입력하면 왼쪽 화면에 숫자가 뜬다.
그리고 SEND 버튼을 클릭하면 왼쪽 아래의 배달 이미지가 출력된다.
그리고 STM32 IDE에서의 Screen1View.cpp에서 GUI 관련 개발도 가능하다.
한번 살펴보자 .
핵심적인 함수중 하나는 아래와 같다.
void updateUnitDisplay 함수는 화면에 입력한 숫자 (여기선 n)을 화면에 업데이트 및 값을 저장해 놓는 함수이다.
입력 받으면 백의 자리 숫자의 경우 unit1에들어간다.
3자리 숫자를 입력 받을 수 있는데 첫번째 입력한 숫자가 맨앞에 들어가기 때문이다.
받아들여지는 숫자에 알맞는 textArea_unitBuffer에 숫자가 들어가게 snprintf를 사용하여 숫자를 넣는다.
조합된 숫자는 send 버튼을 눌렀을때의 event인 clicked_send() 로 전송되게 된다.
눌렀을때 전역 변수인 send_flag와 unit을 건드리는데, unit은 입력된 3자리 숫자, send_flag는 전송 버튼을 눌렀다는 값으로 보면된다.
그리고 main.c에서 기본적으로 주는 Task에서 위와 같은 동작을 수행한다. 간단히 send_flag가 1인경우 HAL_UART_Transmit를 통해 터미널 창에 받은 숫자를 표현하는 방법이다.
숫자 자체를 표현하는 방법이 있을거 같은데... 예시로는 문자열 밖에없어서 일단 위와 같이 번거롭게 표현했다.
실제 동작화면
입력된 시리얼 모디터
'STM32 > Touch GFX' 카테고리의 다른 글
[STM32] Touch GFX 실습 - 3 : FREE RTOS 써보기 (0) | 2024.08.12 |
---|---|
[STM32] Touch GFX 실습 - 2 : 터치스크린으로 PWM 제어 (6) | 2024.08.12 |