请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

完全移植记录之LittlevGL

[复制链接]
lebment 发布时间:2018-5-28 17:47
本帖最后由 lebment 于 2018-5-28 22:34 编辑 : k1 L# z+ `) V

2 T+ t% M5 n# ^* d7 S9 t6 ^  硬件:STM32F407核心板,2.4寸电阻屏(320*240,xpt2048触摸芯片),ST—LINK V2-1;+ f& c. G4 b  ~1 d7 S1 O9 \' p
  软件:MDKv5.25,CubeMX最新版,最新版F4库,LittlevGL版本5.1。
) Z0 X7 C$ \  N+ o/ R5 o6 A+ H4 J  N( L. Z  x2 c4 y
  官网下载最新版本的LittlevGL的源码,有需要的同学可以下载附件。其中有三个包,lvgl文件夹是我们LittlevGL的源码,lvgl examples文件夹是一些应用例子,lvgl Driver是一些屏幕驱动基本上用不到。
8 S; y6 `* I# I' P- x9 b; N  省去板子初始化,BSP的编写,直接主题。, R* A) y& V+ a5 E4 ^7 |4 _6 ^
  % T; k0 \' u5 N. }# M
# F# w2 T, z. o& M' o0 F
            
* e6 e2 @5 Z0 Q
: [6 g: i9 W0 l6 D1 e

4 Z5 }9 O- X" y8 v2 a
9 ]: A+ V0 U/ r! l4 v6 A. y9 @( C( _0 y/ S: C6 A/ U, V

- L- h0 c  j6 u# ]0 x4 D  1.在工程文件夹内加入LittvGL文件夹,该文件夹如图
0 @# _9 r; H- ^  ^

# W* C: }8 C" O2 a, z0 x, }3 E    把里面所有C文件加入你的工程!先不要编译,会有很多错。6 I! z- N" D0 M- W8 V3 f: [  b

4 J1 P* }  I2 t, W+ M  2.其中的lv_conf.h原名是lv_conf_templ.h,这个头文件必须放在lvgl旁,最好是按我这个来移植。不然需要改很多包含头文件的代码。  
/ W, ?- |( c  Z5 G

7 p8 U* P5 _! m4 Z: u* I  3.In the lv_conf.h delete the first `#if 0` and its `#endif`. Let the default configurations at first.
) k/ ^4 H4 |7 k4 w$ h5 V: l+ q; m) ^  N( [& Y  [$ L$ Q
2 u. K7 A4 D9 a2 X. W7 B
  4.lv_tick_inc(1)这是个GUI心跳  如图:& ~& Q" S* ^" x. u4 O9 {

) Q' |  w2 H. Z- l, r; A  5.找到压缩包里的lvgl examples文件夹下的lv_tutorial文件夹,打开
0 ~) `% y) S. E9 ?  直接复制粘贴里面的0_Porting的C文件和头文件到你的工程里,我改它名字在第一幅图lv_Proting.c,里面的代码相应要做修改。5 D% E! a5 W9 D8 ?, ^0 i8 W
  6.现在介绍如何修改里面的代码
: ?1 d+ q# d% H, w& o1 v      你的屏幕初始化程序
& K- x' s; e' V) ~/ k7 X4 Z2 N        你的打点程序& u$ i* z9 T1 _5 |6 w
      还是你的打点程序; R9 N8 m9 R( X& d3 R1 C: G
, O3 R& N* [! P2 ~9 n! R, y
* v& ?9 m) I# q- X+ V1 j
   依然是你的打点程序
/ O+ [0 X% X/ Y7 m) k0 E7 b
( C+ j4 ^$ j" J$ R
+ S. u/ u' x5 b1 W6 q
终于到了你的触摸屏
; ?$ v! ^* P/ G/ a7 p* X. _
( y' e' m# V, G2 {
* `. Q- i- {8 {5 ?

+ k$ |, X. f3 z# @" s2 K' a
+ }1 |9 {( J7 [5 W5 s$ k3 U
编译一下,可能你会出现一些匿名结构体之类的Error,先排除这个Error,找到相关头文件,加一句#pragma anon_unions就可以灭掉大部分错误了。
/ H7 `5 U: x1 m/ q. t- H# }* h( W$ B# i3 h
   
( g1 Y% _6 X) z$ ]8 K/ v
+ D" L, F5 p  U/ g# s9 F" c% R
7.开始Hello world!测试,复制粘贴下面的句子,
% H' N+ p* v5 N! q9 C$ h* v, k    lv_obj_t * label1 =  lv_label_create(lv_scr_act(), NULL);
- g; v8 }- ?3 q7 J: R5 c5 G, Q    /*Modify the Label's text*/
, a; |, L: Q; p    lv_label_set_text(label1, "Hello world!");
% q1 i! p- E9 g    /* Align the Label to the center
' f4 B. V* o/ g$ F3 J     * NULL means align on parent (which is the screen now)9 N* A2 A0 b3 `/ P* k1 u4 m2 w
     * 0, 0 at the end means an x, y offset after alignment*/
3 d: ?3 O! N. n# {    lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, 0);
; Z) m& @$ r# {1 g: f

, r3 w* c' P9 n8 t; C& g6 z7 Y6 ?2 H

) f8 _( }" t7 s: F
! D( L$ u6 A: _9 G% n9 i0 K
9 e" c. `+ G5 K% `& n. R
  while (1)
1 l' D1 k: w: |) ]. |3 Q; E  {
9 K2 J2 K- B8 ^- M1 G( K% N" `, n5 H( k# G6 [2 e
  /* USER CODE END WHILE */
/ P7 G% {6 j/ t3 w* T) W% x
& M: S/ p; `; k6 `: A% J' c7 O) T  /* USER CODE BEGIN 3 */
+ M3 U' o( Y& Y1 j/ s$ H0 @) q   lv_task_handler();8 |1 t! b8 D9 _* Z0 N2 f8 I2 q
     HAL_Delay(5);
" \5 B' e/ z; A+ h* J# {  }
4 {' M4 Z, c. \. |
. Y/ h1 J( t* M( V
0 {* x0 t# D2 ]' M% Q, i  R

! w1 }0 Y" H' x3 r! r7 O& s
, C& S5 t9 D$ {% y1 c' E, W
8.如果执行不成功,可以去相关的lv_conf.h里面看看设置,这是我修改的设置:
+ f3 M, K0 k4 a: i6 t, n* g
7 E4 T3 @, R  V8 k9 d& }, k
3 I5 \8 a' _3 z
其余的我没改。
. l: {' }  x$ X: |3 v/ ]: w+ N9 H' |% T) i: Q
( o' y' T, {, d! I+ _* s3 B8 I4 U
我的板子显示了在正中心显示了Hello world!,我太懒不想上图。8 t- F7 p! l* s! A' X4 \, d: Q8 R

/ z' D5 ]( `/ m* H$ z, d2 Z
  Q' C( [6 B: H# q  O
9.如果还有什么问题可以去看看,文档,压缩包都有,也可以在这里问我。0 ?- d! f3 ~, L  h

5 Y  d% i- Y% C: N: O/ A7 \- r& H' I
& O8 E6 C9 ?3 P: H) B% h% T

" u4 {! Z1 C/ Y6 I% D- g2 T4 @' o

( Q+ W" x+ O  C2 Y  最终对比一下STemwin和这个GUI,在我看来,移植难度来说,都差不多,各有各的困难,他们的接口完全不一样,STemwin的好处显而易见官方支持,还有PC软件支持等。littlevGL就显得一穷二白,可以看到显示一字符串,STemwin就一句GUI_DispStringAt();,这个比较复杂,还需要我们多多开源尝试怎么使用,STemwin结构复杂,我等小小辈难以解释,但是我的使用感受来说,一旦STemwin移植完成,后面的应用会很快。LittlvGL的界面我也就不多说了,炫酷,看起来我很喜欢,扁平科技感爆炸,STemwin如果不改皮肤,很那啥,太老土?
1 a+ Z; F/ x, g. ?1 C  最后感谢一下社区吧!很希望社区强大起来,也希望大佬不要吝啬,多多交流。初学者也应该尽量自己去解决问题。此篇仅仅是完善移植过程,部分大佬可以忽略,给小白一点空间,详细的手册和资料,还有活跃的社区是ST的基础啊!
5 s! |$ l1 H# W% v  c
; L% q7 b5 P9 U$ a- d

5 i+ W& E8 Z# V& h$ O* _! j7 y8 T% \6 f

9 v4 @" A  {) f7 [8 f, a0 R& E% v6 t

评分

参与人数 1 ST金币 +1 收起 理由
mcbot + 1 littlevGL 群526465246 大家一起来讨论.

查看全部评分

收藏 2 评论23 发布时间:2018-5-28 17:47

举报

23个回答
lebment 回答时间:2018-5-29 17:19:57
Inc_brza 发表于 2018-5-29 15:04! j' `. o4 o! a
这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。 ...
4 f8 ^0 d& `6 e) x: s
我知道,我Flash崩了,重新下载安装都没有用。FireFox
Inc_brza 回答时间:2018-5-29 15:04:12
lebment 发表于 2018-5-29 12:074 d* j7 ^' ^# p: O' d0 t* a
我是WIN+SHIFT+S截图粘贴在编辑框的。
) U$ C$ }$ E9 P  ]% L6 ?
这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。
lebment 回答时间:2018-5-29 12:07:37
Inc_brza 发表于 2018-5-29 08:43
* X8 v5 ?/ x) w你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

% H) G. i% h$ E/ T" z! L) Z! t% t7 @我是WIN+SHIFT+S截图粘贴在编辑框的。
lebment 回答时间:2018-5-28 17:50:44
为什么不显示图片
) @, ^) u6 a5 x' T' |* i
Inc_brza 回答时间:2018-5-28 17:55:39
试试上传附件?
lebment 回答时间:2018-5-28 18:37:39
Inc_brza 发表于 2018-5-28 17:55$ J) B& E4 k4 b9 [2 L/ u, K
试试上传附件?
2 s6 W: f) n9 o% D% R
都不行
lebment 回答时间:2018-5-28 22:01:05
很多种方法都不能上传图片,还有那个压缩包!
lebment 回答时间:2018-5-28 22:01:50
需要详细过程的可以发邮箱821613205@qq.com找我!
Inc_brza 回答时间:2018-5-29 08:43:19
你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄
lebment 回答时间:2018-5-29 12:08:15
Inc_brza 发表于 2018-5-29 08:435 M: g7 j6 F$ m6 N6 W; Y
你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

! |( s3 }6 v5 K8 z也试过直接上传,都没有效。* Z8 [) m  ~& `$ Y% c& a
lebment 回答时间:2018-5-29 17:21:59
LittlevGL库
4 j/ _: @0 o; @9 j0 M8 Y; s

littlevGL.rar

下载

1.92 MB, 下载次数: 53

lebment 回答时间:2018-5-29 17:23:27
我的工程文件

LCD_LittlevGl.rar

下载

11.5 MB, 下载次数: 316

stary666 回答时间:2018-5-29 17:33:39
我好像在f429上移植过哦
Inc_brza 回答时间:2018-5-29 19:45:20
lebment 发表于 2018-5-29 17:19% O/ z# Y7 M7 x
我知道,我Flash崩了,重新下载安装都没有用。FireFox

& ?. S( z8 e& ?7 E2 l早日抛弃这种垃圾浏览器吧
12下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版