LVGL7.5版本 触摸与键盘输入
LVGL7.5版本 触摸与键盘输入(API)对接(一)
前言:
- 前提条件:
- 已完成移植lvgl
- 本篇文章将重点讲解Keypad键盘按键
一、indev输入设备的种类介绍
- Touchpad (触摸板,例如电容屏、电阻屏等)
- Mouse (鼠标)
- Keypad (键盘)
- Encoder (编码器)
- Button (外部按键)
二、移植Touchpad与Keypad
void lv_port_indev_init(void)
{
lv_indev_drv_t indev_drv;
/*------------------
* Touchpad
* -----------------*/
//触摸屏
/*Initialize your touchpad if you have*/
touchpad_init();
/*Register a touchpad input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = touchpad_read;
indev_touchpad = lv_indev_drv_register(&indev_drv);
//按键
/*------------------
* Keypad
* -----------------*/
/*Initialize your keypad or keyboard if you have*/
keypad_init();
/*Register a keypad input device*/
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_KEYPAD;
indev_drv.read_cb = keypad_read;
indev_keypad = lv_indev_drv_register(&indev_drv);
/* Later you should create group(s) with `lv_group_t * group = lv_group_create()`,
* add objects to the group with `lv_group_add_obj(group, obj)`
* and assign this input device to group to navigate in it:
* `lv_indev_set_group(indev_keypad, group);` */
}
Touchpad
触摸屏移植只需要结合自己的TP驱动完成这两个函数
/*Return true is the touchpad is pressed*/
static bool touchpad_is_pressed(void)
{
if (TouchItOccurred == SET)
{
TouchItOccurred = RESET;
/*Your code comes here*/
//判断是否有被按下
BSP_TS_GetState(&TS_State);
if(TS_State.touchDetected)
{
if