LVGL v9 Touch Compatibility

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LVGL v9 Touch Compatibility

Jump to solution
926 Views
frozen
Contributor III

 

I use NXP Imx RT1170 EVK board and NXP’s own ide, MCU Xpresso. I have downloaded their latest version for now (03 Feb 2024). I had a project about GUI, there are some texts and images and buttons.
I wanted to import lvgl v9 after released. I can see the same screen on my lcd but I could not get successful touch. I think I have a problem about indev, I share some code pieces and screens here.

 

Previous version v8.3.11

 

 

void lv_port_indev_init(void)
{
static lv_indev_drv_t indev_drv;

DEMO_InitTouch();

lv_indev_drv_init(&indev_drv);

indev_drv.type = LV_INDEV_TYPE_POINTER;

indev_drv.read_cb = DEMO_ReadTouch;

lv_indev_drv_register(&indev_drv);
}

 

 

new version v9.0.0 written by me

 

void lv_port_indev_init(void)
{
lv_indev_t * indev = lv_indev_create();

DEMO_InitTouch();

lv_indev_set_type(indev,LV_INDEV_TYPE_POINTER);

lv_indev_set_read_cb(indev,DEMO_ReadTouch);

lv_indev_set_display(indev,disp);
}

 



Video is here : https://veed.io/view/a6df6215-cb30-4c41-9a26-10a940bda5f8

 

0 Kudos
1 Solution
857 Views
frozen
Contributor III

Hi thanks for support. I thought I have a problem about indev but I was wrong. My problem was about lv_display_t .

I have written below code

 

    memset(s_frameBuffer, 0, sizeof(s_frameBuffer));

    lv_display_t * disp = lv_display_create(DEMO_BUFFER_WIDTH, DEMO_BUFFER_HEIGHT);
    lv_display_set_flush_cb(disp, (void *)DEMO_FlushDisplay);
    lv_display_set_buffers(disp, s_frameBuffer[0], s_frameBuffer[1], DEMO_BUFFER_WIDTH*DEMO_BUFFER_HEIGHT*DEMO_BUFFER_BYTE_PER_PIXEL, LV_DISPLAY_RENDER_MODE_PARTIAL);

 

Then I have changed just render_mode as below and now touch capability is okay.

 

    lv_display_set_buffers(disp, s_frameBuffer[0], s_frameBuffer[1], DEMO_BUFFER_WIDTH*DEMO_BUFFER_HEIGHT*DEMO_BUFFER_BYTE_PER_PIXEL, LV_DISPLAY_RENDER_MODE_DIRECT);

 



Now I can see my gui designs on the lcd and when I touch objects I see an expected effects.

View solution in original post

4 Replies
885 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @frozen ,

   Thank you for your interest in the NXP MIMXRT product, I would like to provide service for you.

   I already help you to check with our internal side, LVGL V9 is not supported now.

  We highly recommend you use the following LVGL version which is supported by the GUI Guider:

kerryzhou_0-1707123876535.png

  Then, if you meet any issues, just kindly let us know.

Best Regards,

Kerry

 

0 Kudos
869 Views
frozen
Contributor III

Hi @kerryzhou ,

Thanks for your support. I have to use v9, that's why I have to insist on not using Gui Guider with lvgl v8.3.5.

0 Kudos
865 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @frozen ,

   I already check internally, the V9+SDK still in the progress internally, as V9 have a lot of difference with V8. So, until now, SDK support with V9 still not avaiable, thanks.

 

Best Regards,

Kerry

0 Kudos
858 Views
frozen
Contributor III

Hi thanks for support. I thought I have a problem about indev but I was wrong. My problem was about lv_display_t .

I have written below code

 

    memset(s_frameBuffer, 0, sizeof(s_frameBuffer));

    lv_display_t * disp = lv_display_create(DEMO_BUFFER_WIDTH, DEMO_BUFFER_HEIGHT);
    lv_display_set_flush_cb(disp, (void *)DEMO_FlushDisplay);
    lv_display_set_buffers(disp, s_frameBuffer[0], s_frameBuffer[1], DEMO_BUFFER_WIDTH*DEMO_BUFFER_HEIGHT*DEMO_BUFFER_BYTE_PER_PIXEL, LV_DISPLAY_RENDER_MODE_PARTIAL);

 

Then I have changed just render_mode as below and now touch capability is okay.

 

    lv_display_set_buffers(disp, s_frameBuffer[0], s_frameBuffer[1], DEMO_BUFFER_WIDTH*DEMO_BUFFER_HEIGHT*DEMO_BUFFER_BYTE_PER_PIXEL, LV_DISPLAY_RENDER_MODE_DIRECT);

 



Now I can see my gui designs on the lcd and when I touch objects I see an expected effects.