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

完全移植记录之LittlevGL

[复制链接]
lebment 发布时间:2018-5-28 17:47
本帖最后由 lebment 于 2018-5-28 22:34 编辑 3 S3 p1 T2 M' X+ t

% v1 H2 L4 ~. A* E  硬件:STM32F407核心板,2.4寸电阻屏(320*240,xpt2048触摸芯片),ST—LINK V2-1;
0 R8 Y0 h+ F! H  软件:MDKv5.25,CubeMX最新版,最新版F4库,LittlevGL版本5.1。2 D3 K$ n, }/ |( }/ F- C

/ d8 E1 e( h3 P& B  官网下载最新版本的LittlevGL的源码,有需要的同学可以下载附件。其中有三个包,lvgl文件夹是我们LittlevGL的源码,lvgl examples文件夹是一些应用例子,lvgl Driver是一些屏幕驱动基本上用不到。4 e' o4 ]: w! z2 w* |
  省去板子初始化,BSP的编写,直接主题。5 r2 _) p& |# E6 b0 Q! r8 c: e' g
  
- k* Z) \4 K4 W+ G
' y6 o& Q- T4 K# b- B) M8 D# A- c2 P
            
3 Z( S2 Z) f4 `, K( c( M
- T1 X, d: l6 O8 |, N+ r# M

5 f; q9 O( `, \4 n
* W& M4 r( {' S; S# I3 {
0 U$ S/ W! B* {( i1 u% Y& Z2 v" }, Y0 A# g. \
  1.在工程文件夹内加入LittvGL文件夹,该文件夹如图
% @5 E8 [7 L, M. b
0 Y9 e, ?& j) m. [5 t
    把里面所有C文件加入你的工程!先不要编译,会有很多错。
0 M7 [8 w: `. K- Z0 k5 g

8 S- U: Q' M1 j6 K  2.其中的lv_conf.h原名是lv_conf_templ.h,这个头文件必须放在lvgl旁,最好是按我这个来移植。不然需要改很多包含头文件的代码。    ^% P1 F: U) d& O
; ]$ a2 ~. ^& b/ i5 f5 Z
  3.In the lv_conf.h delete the first `#if 0` and its `#endif`. Let the default configurations at first.
$ f7 F3 E' Z7 i
# _1 p$ X) O2 U/ P: o7 k
8 \7 X3 b( s7 k! o/ w) U
  4.lv_tick_inc(1)这是个GUI心跳  如图:! Q4 \) @2 b$ ^( d

, G- u1 [( D: I5 V! x! C$ i/ i4 f  5.找到压缩包里的lvgl examples文件夹下的lv_tutorial文件夹,打开
  r8 Q+ N  A* n- I  直接复制粘贴里面的0_Porting的C文件和头文件到你的工程里,我改它名字在第一幅图lv_Proting.c,里面的代码相应要做修改。/ |! O" J( V- |8 X3 i
  6.现在介绍如何修改里面的代码
9 q! f5 ^% S. ]; b      你的屏幕初始化程序7 L( I  I( A7 q+ m( Z/ B0 y& I
        你的打点程序. s5 ~/ P5 B2 J$ G. `3 p
      还是你的打点程序
% y6 O( _) H! e, T  o4 V" A. l+ V5 Z0 ?
8 I/ E1 s# C' E: B
   依然是你的打点程序
  a& {. V3 }" S+ b  e# `! y- [5 u% ]  S2 P7 v: g. V0 |/ y9 E0 [

" f* B6 J5 V1 R- r/ G) d# g终于到了你的触摸屏
4 V9 A+ J8 ?2 K& k' ^9 W# s2 `" _: I$ e; U5 r" z4 U0 Q$ {
1 V" N. j) P, Q
: K- o9 L+ s  L" N6 V) V, h& z

/ C! S1 w8 W8 J1 c$ t& ^3 o编译一下,可能你会出现一些匿名结构体之类的Error,先排除这个Error,找到相关头文件,加一句#pragma anon_unions就可以灭掉大部分错误了。
( ^4 o. L, u" Y; l. m/ _0 N8 _  s0 D; Q8 l% U
   4 m9 x$ l7 Q, F& ]* N1 Q( C
2 m& h2 L2 ?; N: x: t4 d# T
7.开始Hello world!测试,复制粘贴下面的句子,
9 z! [# K( S4 N, q& z    lv_obj_t * label1 =  lv_label_create(lv_scr_act(), NULL);. `8 C  {+ k3 k9 O4 n
    /*Modify the Label's text*/6 c8 K8 g, O8 @. a
    lv_label_set_text(label1, "Hello world!");: \# V0 _) x8 V' X* \! Z/ r$ u/ M
    /* Align the Label to the center
3 I$ ~8 S! w0 P& U$ y     * NULL means align on parent (which is the screen now)
% n4 _6 \% ^1 p     * 0, 0 at the end means an x, y offset after alignment*/! F5 M: H4 V+ F" v) p7 w7 P* L3 |3 Y
    lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, 0);
% {% M* Y2 F$ d! H; C0 M
0 l# I/ i- X, s6 b9 [- r9 u, ~2 R

, s" @+ K" F- s  ^% M9 c0 H2 S

7 K6 G8 @3 K1 e" O0 [6 A( Z% ]0 L, o, C7 i" h) Q! m
! ~' I6 z: r0 w6 E9 [! S
  while (1)
3 A0 N/ U+ [& v: e# M0 V3 o* Q  {
1 W2 y) X1 F3 {1 w6 F: O
6 h/ t% j  @$ E2 c; t: p2 }* P" m  /* USER CODE END WHILE */  }; X, ^8 W/ S
, V: |" V" q* J7 N. z2 |
  /* USER CODE BEGIN 3 */
1 [- Z$ `0 C9 R   lv_task_handler();
& i& K, P% t8 i- r     HAL_Delay(5);
5 f. w+ T3 a; L+ |- N2 h( E# {6 K  }

& Y/ ~7 E7 s  c3 f5 w
. j4 ^- p* i7 V" e1 g/ r9 D

+ b8 C' M" j+ L; G
+ ]6 K1 @% H! @4 m- K

* t) Z3 e& R8 [6 n" \8 `8.如果执行不成功,可以去相关的lv_conf.h里面看看设置,这是我修改的设置:
: f  T! F9 ^% K; @5 O6 Q% i2 u5 I1 x* |, k4 R4 s

; C* r. I- ~& A( u4 Q2 ^0 f6 i其余的我没改。
4 |! x3 c- Z9 z1 f2 h
7 A3 v, ?& f6 i( d, _2 A
  B" P1 G: M1 d# P* S0 |我的板子显示了在正中心显示了Hello world!,我太懒不想上图。3 Y: O+ V0 H- N5 s# x

4 _7 j. U1 X5 r; _) A
0 m1 x/ w* O' x4 p- W, o
9.如果还有什么问题可以去看看,文档,压缩包都有,也可以在这里问我。
, F; M8 k& Q3 j# {" ]
1 l  g3 W7 d$ Z, A  |1 B
9 @1 }0 \" J* d, ]2 ~2 `; c& B
6 O% j. ?3 @& a

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

/ D  E6 R$ d, S+ |/ e/ M! x* `
1 L  L- w: I/ P& v  N8 G
! H8 ^# a" c- e- \2 G2 s; L
* ]- P# K, a+ _

评分

参与人数 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) f- J5 F9 N; ~
这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。 ...

* U% R4 |* ?. E6 `我知道,我Flash崩了,重新下载安装都没有用。FireFox
Inc_brza 回答时间:2018-5-29 15:04:12
lebment 发表于 2018-5-29 12:07& X% P$ T$ g) g4 o- d5 q
我是WIN+SHIFT+S截图粘贴在编辑框的。
6 Z6 D+ I1 u& [2 |+ t1 W6 Q
这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。
lebment 回答时间:2018-5-29 12:07:37
Inc_brza 发表于 2018-5-29 08:43
$ W  \. v8 X. K8 p7 e, G你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

& U+ g; k, A8 _8 q/ j我是WIN+SHIFT+S截图粘贴在编辑框的。
lebment 回答时间:2018-5-28 17:50:44
为什么不显示图片
$ ^  c/ c4 j2 D6 x- W% H. r
Inc_brza 回答时间:2018-5-28 17:55:39
试试上传附件?
lebment 回答时间:2018-5-28 18:37:39
Inc_brza 发表于 2018-5-28 17:55: j7 Z& q8 j/ R1 @
试试上传附件?

* N8 i; g+ t+ n; I3 b9 a. s. ?0 \都不行
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:43
6 k% i8 f9 l5 a' V- d你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

3 R' [4 L* e9 H' o6 m# Q也试过直接上传,都没有效。
& k. m9 @6 Y1 p. l$ w( z
lebment 回答时间:2018-5-29 17:21:59
LittlevGL库9 X6 b2 o4 x+ b6 }# D

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  q6 R& s" ?* P& ~- y. T; U
我知道,我Flash崩了,重新下载安装都没有用。FireFox
2 o2 K: a# S% S, G+ i- D( Q' X
早日抛弃这种垃圾浏览器吧
12下一页

所属标签

相似分享

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