STMCU小助手
发布时间:2022-8-27 18:56
|
1.显示部分移植准备 将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl文件夹下面的lv_conf_template.h、lvgl.h复制到KEIL_LVGL\USER\LVGL文件夹下面,并将lv_conf_template.h改名为lv_conf.h并在LVGL文件夹下面新建Porting文件夹
将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl\examples\porting下面所有文件复制到上一步新建的KEIL_LVGL\USER\LVGL\Porting文件夹下面去除去掉文件名中的template。
. _. y6 p3 m. _) [3 M+ @8 q2 _ 2.KEIL配置' P! ?0 u% d8 j V' z% q 2.1 keil中添加头文件路径 KEIL_LVGL\Simulator\LVGL.Simulator\lvgl: M3 @) q, _/ d. Y( ] KEIL_LVGL\USER\LVGL4 Y7 N+ N5 e9 W5 {- B& T% v3 F. P
2.2 新建分组LVGL、LVGL_PORT# D' q% p1 t- N; H' m ) k! {' x) U0 C* _& c8 [" T
2.3. 在LVG分组添加文件 将KEIL_LVGL\Simulator\LVGL.Simulator\lvgl\src文件下面所有的.c文件添加到分组LVGL中,文件较长无法显示。: V) W/ {+ H/ K3 J$ G% i/ v* Z 将KEIL_LVGL\USER\LVGL\Porting下面的.c文件添加到LVGL_PORT分组下面。- q6 c0 F0 g- h' F# R6 z5 Z
Z0 G6 |8 y# R6 m+ ]! n$ O & z# q' S; U3 |' _$ I$ i$ e$ K 3. 显示驱动移植 lv_conf配置 打开lv_conf.h文件并使能。 $ A8 b, d- I8 l t* q# @ 修改v_conf.h 4 j, j: o R$ v3 [; H7 U8 M7 p #define LV_COLOR_DEPTH 16 // 颜色深度 7 @, ?7 Y2 P. }& O4 p) m2 M- a #define LV_USE_PERF_MONITOR 0 // 关闭FPS显示+ ]7 ^$ b# t& j2 k3 F$ a P2 y) I #define LV_USE_MEM_MONITOR 0 // 关闭内存显示1 H" |! t' B2 N0 x
编译一下如果有以下报错 |, f- n' n) N7 n3 o9 O / Y, ~' Q1 m2 W7 u% u! _ ..\..\Simulator\LVGL.Simulator\lvgl\src\extra\libs\fsdrv\lv_fs_win32.c(13): error: #5: cannot open source input file "windows.h": No such file or directory' I+ |! h) i8 Z. g$ _* [ C4 a( h 直接将LVGL分组下的lv_fs_win32.c文件移除掉就行9 R1 w. S+ J3 w+ l: g! [ - l) k9 b6 `6 n: [" T' q ..\..\Simulator\LVGL.Simulator\lvgl\src\hal\lv_hal_tick.c(13): error: #5: cannot open source input file "Windows.h": No such file or directory 我们在报错的位置Go to Definition Of "LV_TICK_CUSTOM"之后发现进入的lv_config.h文件不是我们修改的文件。 ( E& ]0 f) g5 T$ l2 U 解决办法: 打开lv_conf_internal.h文件找到31行#ifndef LV_CONF_SKIP, Q" @6 m8 m6 O0 t; L 0 X: \' p6 o. O L' i 注释: #include "../../lv_conf.h" " \( ~7 o; j7 `: R& p 改为#include "lv_conf.h" " n# c" a$ l1 s# s" u' q
7 ^2 a$ e- _. V0 d/ ?/ p0 q; v
4 屏幕显示驱动移植 上面修改的文件编译无错误时,打开lv_port_disp.c、lv_port_disp.h,#if 0改为#if 1 使能文件。并更改包含的头文件名,加入显示屏驱动头文件。) c1 r1 f) Q7 `2 U( U9 Q 修改lv_port_disp_init(void)函数。这个函数根据自己的硬件情况进行配置。我这个开发板比较简单,这里就简单的进行配置一下。$ r$ E; n6 i/ } 9 U; L: s) p7 G
* f X! x' ~2 R8 O 5.触摸屏驱动配置 打开lv_port_inde.c、lv_port_inde.h,并使能。打开lv_port_inde.c文件进行修改。 加入触摸屏触摸驱动程序头文件,修改void lv_port_indev_int()、static void touchpad_read。其他的外设函数可以根据自己的需要进行配置。( p4 I" K+ d* Y4 X
7 W5 E6 w* D) P6 h' \3 W" S 6.测试移植 在初始化外设时顺便初始化一下两个函数,一定要先初始化lv_init()函数。 ' ^/ C( t/ m, { {1 l/ ?7 M. p
在定时器中断中添加lv_tick_inc函数,用于处理LVGL事务。这个函数可以在通用定时器中断中,也可以在滴答定时器中断中,具体看需要进行配置。
% U+ q6 A7 q i9 b5 a$ ]/ m 在main函数中添加一个按钮、按钮动画、标签、按键事件函数。可以复制到模拟器的main函数运行一下。% f. R% Z) i4 b# ? 1 b! ]: J8 d% k! k3 E0 s
模拟器显示,点击按钮、按钮上面的数字依次增加。
" \1 K8 S* d% h2 W' P! @ 开发板显示效果。 a5 L# D- G1 k
作者:鹰头猫咪喵喵鱼8 f' S _+ u4 |/ T( ?4 Z 6 D- ?0 C: d9 `: `& j) | |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版