笔记:正点原子LVGLv8.2移植stm32

*移植芯片要求⬇

*16,32或64位微控制器或处理器

*主控频率:>16Mhz

*Flash/ROM:>64kb,建议180kb以上

*RAM:>8kb,建议24kb以上

*图形缓冲区:>水平分辨率像素,建议>1/10屏幕总像素

 玻珠用了正点原子stm32f407m144最小系统板,满足要求(具体可查看对应硬件开发手册)

*lvglv8.2文件下载⬇

*地址:LVGL的GitHub仓库:https://github.com/lvgl/lvgl

*步骤:1:master选择自己需要的版本

            2:点击code

            3:下载zip文件

 

*裁剪文件如图:

————开始实操(带触摸,裸机,内部SRAM,LVGL自带内存管理)————

准备:1.对应型号《触摸屏实验》源码

           2.《基本定时器中断实验》源码

           3.LVGL库文件(注意版本,玻珠使用v8.2)

⬇修改文件名和条件编译指令

⬇找到自己的定时器TIMER文件 ,工程名自取能找到即可

⬇添加完如图,TIMER到Drivers/BSP路径 

⬇除demos的文件都放到GUI/lvgl路径  

⬇添加完如图

⬇demos放到GUI_APP路径 

⬇左红框:命名为LVGL

⬇中间红框:按右图添加group 

 ⬇按右图添加.c文件(有点繁琐,注意不要漏掉文件夹里的

⬇魔术棒按右图添加头文件路径 

⬇魔术棒开启C99

⬇不建议!屏蔽MDK警告

⬇添加完编译一下,下图正常情况 

 ⬇已经完成了的步骤 

⬇开始配置输出(用的LCD屏幕) 

 

⬇对应步骤开始操作 

 

 

⬇图形缓冲区大小设置,按自己屏幕的分辨率直接给MY_DISP_HOR_RES(屏幕width),MY_DISP_VER_RES(屏幕height)宏定义也行 ,我的是800*480

*注意:v8.2小范围双缓冲优化程度和单缓冲差不多,反而占内存更大,用单缓冲就行

 

 

⬇选用哪种方式就注释另两种 

 

⬇用了正点原子的动态识别横竖屏分辨率(推荐)。lcddev.width和lcddev.height 直接填对应分辨率长/宽也行(注意横竖屏)

 

⬇如图写函数 

 

⬇触摸屏只涉及touchpad相关,删除无关( mouse,keypad,encoder,button)(标蓝)

 

 

 

 

 

⬇再在lv_port_indev_template.c包含驱动头文件 ,初始化触摸屏,配置触摸检测函数

 

 

 

 

⬇在BSP里add定时器.c文件,在其中包含 lvgl路径

 

 

 

⬇main里删去while里原有的不相关函数 

⬇编译,如果遇到errorL6218E

如果遇到errorL6200E可能是某.c文件被重复添加了,删去即可

 

⬇如图添加代码switch_obj是开关名,lv_switch_creat()创建开关,lv_scr_act()显示在屏幕上

lv_obj_set_size设置图标大小,lv_obj_align设置图标坐标,LV_ALIGN_CENTER表示以屏幕正中间为坐标原点,可以go to definition 找其他位置对应宏更改原点

  

——————————完成————————————————————————

⬇做好如图,开关可触摸(未对应添加诸如开关控制led等功能,仅显示)

 

⬇如果觉得按钮反应比较慢可以改下图示地方,原本是30我改成5了 

 

*优化LVGL运行效果的方法⬇

*学习参考视频⬇

【【正点原子】手把手教你学LVGL图形界面编程】 https://www.bilibili.com/video/BV1CG4y157Px/?share_source=copy_web&vd_source=18c0bce2f6a02448a4cff49a1f8fcff1

 

  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值