LVGL은 key_read_cb에서 정상적으로 키를 올려준다면 자동으로 모든 키에 대해 repeat key 처리가 된다. 특정 키에 대해선 repeat key를 처리하지 않으려면 key_read_cb에서 키를 올려주지 않으면 key repeat interval time을 계산하지 않기 때문에 repeat key 처리가 되지 않는다. LVGL에서 repeat key 종류를 등록하는 것이 있는지 모르겠지만, 코드상 분석한 결과 key_read_cb에서 특정 키에 대해 처리하지 않으려면 LVGL 시뮬레이터인 경우 lv_drivers/indev/keyboard.c 파일을 아래와 같이 수정하면 된다. index 0c08685..d2e2a04 100644 --- a/indev/keyboard.c +++ b/inde..
기존 개발 코드는 Input device를 GPIO로 받아서 처리하였는데, LVGL input device와 연결하지 않고 GPIO를 직접 컨트롤하여 key pressed, key released 및 repeat key 처리를 구현하였다. 이렇게 직접 코딩한 이유가 있겠지만, 키처리 코드는 매우 복잡하며 메뉴하고 연결한 부분은 완전 블랙홀에 가까워 LVGL input device에 GPIO를 연결하여 키 처리하는 방법을 찾아 블로그에 정리한다. 우선 개발보드에는 버튼을 위해 아래와 같이 5개의 GPIO input을 할당하였으며, 5개의 GPIO 버튼을 LVGL 키패드로 연결하여 사용하려고 한다. uint8_t gpio_get_key_state(uint8_t key_code) { uint8_t value ..
STM32F407G 데모보드는 2개의 버튼을 가지고 있으며, PA0 Pin을 GPIO Input으로 설정하여 Blue 버튼을 입력하게 되면, PA0 High로 변경되며 이때 LED를 켜지도록 할 예정이다. 아래 회로도를 참고하기 바란다. STM32CubeIDE에서 PA0는 GPIO Input으로 설정하고 PD12 ~ PD15는 GPIO Output으로 설정하고 저장하면 각 Pin type과 초기값을 설정하는 템플릿 코드가 생성된 것을 확인할 수 있다. 위와 같이 CubeIDE에서 MCU 초기 설정에 대한 코드가 생성되므로, Pin 타입과 초기값에 대한 고민없이 바로 Blue 버튼 입력시 LED를 어떻게 제어할 것인가만 고민하면 된다. 위 회로도처럼 Blue 버튼이 입력되면 PA GPIO는 High 설정되..
다양한 테스트가 가능한 STM32 개발보드를 갖고 있다면 여러가지 만들어보고 테스트 할 수 있지만, 만약 ST에서 판매하는 STM32F407VG 디스커버리 데모보드만 갖고 있다면 ST에서 제공하는 Datasheet를 참고하여 간단하게 LED 테스트 할 수 있다. 이것은 CubeIDE를 사용하여 Pin 설정과 코딩을 어떻게 하는지 학습하는데 꽤 도움이 된다. STM32F4DISCOVERY - STMicroelectronics STM32F4DISCOVERY - Discovery kit with STM32F407VG MCU * New order code STM32F407G-DISC1 (replaces STM32F4DISCOVERY), STM32F407G-DISC1, STMicroelectronics www.s..