yangjiaxu 发表于 2024-10-14 00:04

【匠芯创D133CBS】LVGL的应用

<div class='showpostmsg'><div>本篇为大家带来的是LVGL的应用,匠芯创D133CBS开发板的MCU性能非常强悍,从图1就可以看出,一颗MCU其实可以说是MPU也不过分,其存储配置就非常适合做屏幕应用,并且显示方面支持720P/60FPS的刷新速率,支持2D加速等等非常优秀的功能。因此,把玩一下屏幕是必要的。</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图1 匠芯创D133CBS芯片参数说明</div>

<div>LVGL(Light and Versatile Graphics Library)是一个开源的嵌入式图形库,专为资源受限的嵌入式系统设计。它提供了丰富的图形用户界面(GUI)组件,如按钮、标签、图表、滑块等,支持触摸屏和鼠标输入,并且具有高度的可定制性。现在新版本的lvgl制作的UI更加炫酷,因此,现在使用LVGL的用户越来越多。</div>

<div>匠芯创支持的屏幕三方应用有很多,比如QT,LVGL,在LVGL方面还支持使用LVGL官方的<strong>SquareLine</strong><strong> Studio</strong><strong>可视化辅助软件,</strong><strong>NXP</strong><strong>的</strong><strong>GUI Guider</strong><strong>等等,</strong>所以在使用LVGL方面具有一定的便利性。</div>

<div>本次使用LVGL的V8.3.5移植到匠芯创D133CBS开发板之中。同时使用NXP的GUI Guider来辅助配置GUI界面。</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图2 NXP GUI Guider的使用</div>

<div>在创建完成之后,就可以设计自己所需要的界面了,本次我设计的是智慧食堂方面的支付界面。</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图3 设计的GUI界面</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图4 GUI Guider的仿真界面</div>

<div>有人可能就会问了,你这么大的屏幕为什么设计这么小的界面,其实我心里也不想,哈哈,因为我之前按照1024*600的尺寸设计界面,虽然设计的很漂亮,但是发现编译提示我SRAM_S0溢出的错误,虽然看到坛友说可以通过将存储方面配置成SPRAM上即可,但是我没会配置,哈哈,所以就索性为了避免SRAM_S0溢出的风险,就将画布尺寸缩小到了320*240的大小。图4就是使用GUI Guider仿真的效果图,仿真的时候也会生成C工程文件,这里我们只需要三个文件夹就好。</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图5 移植所需的文件</div>

<div>本人参考坛友的操作确实模块化了许多,代码十分的规整,参考链接<a href="https://bbs.eeworld.com.cn/thread-1292138-1-1.html">https://bbs.eeworld.com.cn/thread-1292138-1-1.html</a>,这里要感谢@ <a href="https://home.eeworld.com.cn/space-uid-393327.html">dirty</a>坛友。接下来可以参考坛友的移植方式,保姆级的移植方式值得参考,移植好之后,就可以使用me命令进行功能配置了。配置界面和路径如下:</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图6 me配置的界面,使能所需的UI</div>

<div>在配置好之后,就可以正常编译了,如果UI的部分会占用很大空间的话,大部分会报错SRAM_S0溢出问题。我是采用缩小UI画布的方式解决的,当然,我这种不算是解决,算是临时测试,真正想要解决的还是要将存储部分配置好</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图7 SRAM_S0溢出问题</div>

<div>至此,如果没有遇到SRAM_S0溢出问题,那么大概率是能编译通过的,编译通过之后就可以将生成的固件烧录到开发板之中了。</div>

<div style="text-align: center;"></div>

<div style="text-align: center;">图8 LVGL效果图</div>

<div><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1oi26YYEcP&amp;page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</div>

<p><!--importdoc--></p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【匠芯创D133CBS】LVGL的应用