btnmatrix矩阵按键 lvgl 用arduino实现,按下按键时输出按键上的文字内容
时间: 2024-02-16 09:00:35 浏览: 96
用labview来实现矩阵按键和oled屏幕显示
5星 · 资源好评率100%
要实现在按下按键时输出按键上的文字内容,可以在 `btn_click_action()` 函数中获取按下的按钮的文本标签,并将其输出到串口或屏幕上。具体实现步骤如下:
1. 在 `btn_click_action()` 函数中,获取按下的按钮的文本标签。
```c
void btn_click_action(lv_obj_t *btnm, const char *txt) {
Serial.print("Button ");
Serial.print(txt);
Serial.println(" is pressed.");
}
```
2. 将获取的文本标签输出到串口。
```c
void btn_click_action(lv_obj_t *btnm, const char *txt) {
Serial.print("Button ");
Serial.print(txt);
Serial.println(" is pressed.");
}
```
3. 将获取的文本标签输出到屏幕上。
```c
void btn_click_action(lv_obj_t *btnm, const char *txt) {
lv_obj_t *label = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label, txt);
lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0);
}
```
以上代码在屏幕上创建一个标签对象,并将获取的文本标签设置为标签的文本内容。标签对象将根据居中对齐方式对齐到屏幕中央。
完整代码示例:
```c
#include <lvgl.h>
lv_obj_t *btnm;
void btn_click_action(lv_obj_t *btnm, const char *txt) {
lv_obj_t *label = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label, txt);
lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0);
}
void setup() {
Serial.begin(9600);
lv_init();
btnm = lv_btnmatrix_create(lv_scr_act(), NULL);
lv_btnmatrix_set_map(btnm, (const char **)btnm_map);
lv_btnmatrix_set_btn_click_action(btnm, btn_click_action);
lv_obj_t *label = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label, "Press a button");
lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, -50);
}
void loop() {
lv_task_handler();
}
```
在以上代码中,按下按钮时,将在屏幕中央显示按钮上的文本标签。
阅读全文