Key77x 2023-05-24 21:22 采纳率: 0%
浏览 49
已结题

ESP32 LVGL 回调函数函数

先附上代码
程序需求是想通过串口传入数据,进而实现事件触发的效果。

/*回调函数*/
static void scr_event(lv_event_t *e)
{
    lv_obj_t * label = (lv_obj_t*)lv_event_get_user_data(e);  
    Serial.print("callback is ok");
    lv_label_set_text(label, "OPEN");
}
void set_caiya_gui(void)
{
  /*屏幕1*/
  scr1 = lv_obj_create(lv_scr_act());//在默认屏幕上创建屏幕1
  lv_obj_set_style_bg_color(scr1,lv_color_hex(0xeeffcc), LV_STATE_DEFAULT); 
  lv_obj_set_size(scr1, LV_HOR_RES, LV_VER_RES);// 设置到屏幕大小
  //设置按钮
  lv_obj_t* label = lv_label_create(scr1);        // 创建label
  lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);        // label居屏幕中心对齐
  lv_label_set_text(label, "ONE");                   // label显示ONE
  lv_obj_add_event_cb(scr1, scr_event, LV_EVENT_CLICKED, label);
}
void setup()
{
    tft.init();         //初始化
    mylvglinit();       //LVGL初始化
    set_caiya_gui();
    Serial.begin(115200);
}
 
void loop()
{
    lv_timer_handler(); /* let the GUI do its work */
    delay(5);
    if(Serial.available())
    {
        rev=Serial.read();
        Serial.print("rev=");
        Serial.println(rev);
        //lv_event_send(scr1,LV_EVENT_CLICKED,scr2);
        if(rev == 'a')
        {
            //手动发送事件到对象
            lv_event_send(scr1,LV_EVENT_CLICKED,NULL);
        }
    }
}

问题可以聚焦在回调函数中

static void scr_event(lv_event_t *e)
{
    lv_obj_t * label = (lv_obj_t*)lv_event_get_user_data(e);  
    Serial.print("callback is ok");
    lv_label_set_text(label, "OPEN");
}
//这里是将label写成"OPEN",但是没效果,但是Serial.print("callback is ok");可以输出

不知道问题出在哪里,各位麻烦解答一下/(ㄒoㄒ)/~~
环境是VScode+platformIO

img

 [env:esp32dev
 platform                   espressif32
 board              esp32dev
 framework                     arduino
 lib deps
       bodmer/TFT                    eSPI@2.5.36
       1vgl/1vg1@8.3.7
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-28 00:06
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月29日
  • 创建了问题 5月24日

悬赏问题

  • ¥50 安装华大九天aether
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证