丨budboool · 2023年12月25日 · 广东

纵享丝滑!R128+LVGL驱动多尺寸RGB LCD屏幕流畅运行

新晋点屏神器,R128!各种屏幕都能点!

ezgif.com-optimize (11).gif

高刷、大屏、宽色域......通常来讲,显示器的配置越高,越能给使用者带来优于其它一般配置显示器的体验。但就某些特殊的使用场景来讲,选择配置合适的显示屏幕,才能更精准地匹配上实际的使用需求。

无论是工控监视设备、平板电脑、笔记本电脑等带屏产品,还是平时开发者在DIY掌机、小电脑、桌面机器人等电子设备时,都需要通过使用不同尺寸的RGB屏幕来满足特定的需求。

R128和LVGL的组合就为这一类的应用场景提供了解决方案的另一种选择,对内存及处理器性能的低要求,可以让LVGL很好的适配不同尺寸的RGB屏幕以及各种应用场景。

  • 7寸方屏(1024x600)
    ezgif.com-video-to-gif-converted.gif
  • 4寸方屏(480x480)
    ezgif.com-video-to-gif-converted (1).gif
  • 4寸圆屏RGB(480x480)
    ezgif.com-video-to-gif-converted (2).gif

R128适配RGB LCD配置

如动图展示,其中最大的屏幕是 7寸1024x600分辨率,lvgl测试不加触摸能跑60多帧,加触摸是58帧左右,4寸480x480分辨率的屏幕时,R128的lv\_benchmark跑分显示可达247fps,实现伪高刷。

640.png

R128目前以支持移植百问网的7寸(1024x600)、4寸方屏(480x480)、4寸圆屏RGB(480x480)。

不同尺寸RGB屏幕的sys\_config.fex配置有微小差异,以4寸方屏RGB配置代码为例:


4寸方屏(480x480)
;lcd_driver_name     = "default_lcd"
;lcd_backlight       = 150
;lcd_if              = 0
;lcd_x               = 480
;lcd_y               = 480
;lcd_width           = 70
;lcd_height          = 70
;lcd_rb_swap         = 1
;lcd_dclk_freq       = 9
;lcd_pwm_used        = 1
;lcd_pwm_ch          = 7
;lcd_pwm_freq        = 500000
;lcd_pwm_pol         = 1
;lcd_hbp             = 20
;lcd_ht              = 526
;lcd_hspw            = 6
;lcd_vbp             = 10
;lcd_vt              = 510
;lcd_vspw            = 4
;lcd_lvds_if         = 0
;lcd_lvds_colordepth = 1
;lcd_lvds_mode       = 0
;lcd_frm             = 1
;lcd_io_phase        = 0x0000
;lcd_gamma_en        = 0
;lcd_bright_curve_en = 0
;lcd_cmap_en         = 0

#触摸配置
4寸方屏(480x480) GT911
;tp_max_x               = 480
;tp_max_y               = 480
;tp_addr                = 0x14

7CBE9CDC-A3FD-4ce6-B051-8EC233D71A08.png

LVGL配置修改以下内容:


/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 32  /*这里可以改为16,因为de会自动转换到32位,最终显示还是32位色深*/

/*Swap the 2 bytes of RGB565 color. Useful if the display has an 8-bit interface (e.g. SPI)*/
#define LV_COLOR_16_SWAP 0

#ifndef USE_EVDEV
#  define USE_EVDEV           1
#endif

以上配置完成后,编译打包烧录,上电后屏幕背光亮起,屏幕为黑色,并且可以在 LOG 中看到 SPI 初始化的 LOG。


disp:[disp_device_attached_and_enable 230]attached ok, mgr0<-->dev0
disp:[disp_device_attached_and_enable 243]type:1,mode:0,fmt:rgb,bits:8bits,eotf:4,cs:0 dvi_hdmi:2, range:2 scan:0 ratio:8
[gt911][log] PRODUCT_ID=39:31:31:00:60:10
[gt911][log] verison=00 range_x=0 range_y=0 point_num=0
[gt911][log] PRODUCT_ID=39:31:31:00:60:10
[gt911][log] verison=42 range_x=480 range_y=480 point_num=5

开发资源

Gitee源码获取链接:https://gitee.com/weidongshan/100ask\_r128\_demos
GitHub源码获取链接:https://github.com/100askTeam/100ask\_r128\_demos

ezgif.com-video-to-gif-converted (3).gif

更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解:https://aw-r128.100ask.net/zh/rtos/demo/part1/chapter15.html

应用拓展

在其它规格及尺寸屏幕上的LVGL运行效果对比也可以参考以下文章,文章内将对比了LVGL运行在R128平台时,SPI与DBI在不同型号屏幕下的性能差异。
相关阅读:640.png

能进行虚拟光渲交互的智能家居中控,基于开源项目移植的NWatch智能手表,它们的产品形态其实类似,只是在屏幕的选择规格上有明显差异。

相关阅读:https://bbs.aw-ol.com/topic/4793/
640.gif


640 (1).gif

在原文链接演示的链接回复中,也可以发现有的开发者基于R128+LVGL的搭配实现了普通灯珠的点阵屏控制效果图,丰富的音视频接口为R128应对不同场景的需求提供了便利。

6E85F489-20E6-477f-B322-0064B4B0AF69.png

推荐阅读
关注数
16
文章数
77
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息