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

完全移植记录之LittlevGL

[复制链接]
lebment 发布时间:2018-5-28 17:47
本帖最后由 lebment 于 2018-5-28 22:34 编辑
3 u  G2 a. \- W- L6 p! H! p0 S4 V" g3 a% J! m0 j# {3 }
  硬件:STM32F407核心板,2.4寸电阻屏(320*240,xpt2048触摸芯片),ST—LINK V2-1;
; t; {& D1 m+ s  `! J  软件:MDKv5.25,CubeMX最新版,最新版F4库,LittlevGL版本5.1。
- H/ _' V* q+ s& _+ G0 Y
  v0 z, W) |! Z0 t  官网下载最新版本的LittlevGL的源码,有需要的同学可以下载附件。其中有三个包,lvgl文件夹是我们LittlevGL的源码,lvgl examples文件夹是一些应用例子,lvgl Driver是一些屏幕驱动基本上用不到。
7 `6 T' Y" J% h6 {/ u: G  省去板子初始化,BSP的编写,直接主题。
4 |. ~4 X1 W7 m. J* |1 |6 b& g  
. A$ P4 w/ F" M* }; V4 z2 s) I# y

* ?! |1 o/ m$ G: e; j3 ^  Y             5 c; _) S. V# C5 ?7 Q

1 i" M( z" G# E+ o3 y
6 g9 S! |6 O+ B+ V! H! ]1 D9 ?$ M: ?) f: ?  A, W; K
; \0 V5 b; ~. h6 F  |7 t. ~+ U$ l
' ?$ X8 w: M$ ^. `! f9 V( P
  1.在工程文件夹内加入LittvGL文件夹,该文件夹如图3 b! h# z! f7 R; @0 _3 U/ ~

9 c3 A# E; l2 Z" ^1 M    把里面所有C文件加入你的工程!先不要编译,会有很多错。
& {3 D: H) W* t: F3 G( t. u
7 n0 n% d0 H3 E6 a+ X& H( G2 a& W
  2.其中的lv_conf.h原名是lv_conf_templ.h,这个头文件必须放在lvgl旁,最好是按我这个来移植。不然需要改很多包含头文件的代码。  2 j) ~5 X6 Z1 \8 `! |  K
& B1 Y  Z0 w4 p
  3.In the lv_conf.h delete the first `#if 0` and its `#endif`. Let the default configurations at first." @" A- W* ]1 x0 H3 Y/ t/ e) m3 m

# x; q5 j% y+ F5 u

7 t" [5 N, E! V  4.lv_tick_inc(1)这是个GUI心跳  如图:5 r5 ?8 R6 ~# h2 S' n& w0 f
( c" {- w( w4 W  K- H3 [( v
  5.找到压缩包里的lvgl examples文件夹下的lv_tutorial文件夹,打开
. k0 A% A$ v1 t% C* p/ L8 C  直接复制粘贴里面的0_Porting的C文件和头文件到你的工程里,我改它名字在第一幅图lv_Proting.c,里面的代码相应要做修改。4 c. D; i% G* |7 O& ~1 C1 i' b' K
  6.现在介绍如何修改里面的代码! d3 g& A+ |+ m. n' F. s2 ~
      你的屏幕初始化程序7 F: S( Z' k; x" V0 s5 D( N
        你的打点程序- E& D* M* Q- h
      还是你的打点程序
+ c0 U9 i( b. R( n5 D1 s, }: Z  q, ~
6 g8 R- l) M8 l
   依然是你的打点程序( x5 P) U* T( j; @2 E- U

: @& m8 Y) e1 Y* a! i  g: q
- u* h! u8 ?0 O/ f) p3 t
终于到了你的触摸屏
; `1 R: t2 d* L. E  k/ f  T6 S6 h6 Q3 p( `: B; l
" K% I* m/ G# ^& H5 a; D! P7 I6 G
' o; R% ^8 r, O: x
( X( R6 [' O$ W& v8 ^; T
编译一下,可能你会出现一些匿名结构体之类的Error,先排除这个Error,找到相关头文件,加一句#pragma anon_unions就可以灭掉大部分错误了。
+ F# t4 l1 ]$ c7 z, c! o
$ z. ~3 X2 ?* Y4 U- J7 f- K" j   * l/ m* r0 {* K8 ^" l4 n9 T! E0 x  Q  _
" ]: n& @' ]! ]/ C" {2 s
7.开始Hello world!测试,复制粘贴下面的句子,
: R  v$ K6 L, g. w2 K% a$ z, n    lv_obj_t * label1 =  lv_label_create(lv_scr_act(), NULL);
; \7 }4 f+ H! p6 Y/ _    /*Modify the Label's text*/
* C# f6 B% p& [  N* L    lv_label_set_text(label1, "Hello world!");
+ z( z+ B; x3 U    /* Align the Label to the center0 x$ e" u! d/ Q9 E3 E
     * NULL means align on parent (which is the screen now)6 s/ g% F' r4 A! h) n" o6 d+ m
     * 0, 0 at the end means an x, y offset after alignment*/0 B9 ]/ j  D/ }8 g9 w: B. `' X7 N
    lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, 0);
1 l- f/ S: ^, w
( g: _0 b- U# s

1 R' u( N" h, K) [3 M$ P/ e* I

1 q3 ^. i, c* n& |
7 L9 p$ Y0 o5 I' B) G; C

5 d3 _- M0 T0 k) y) k7 G- U  while (1)' k& d9 X6 S) R1 |% ^6 Y2 }% f
  {
( j: j# c+ V  H! F& c0 R4 E0 I  h4 j- Q
  /* USER CODE END WHILE */
( p9 ?4 Q4 x' K# K! N! |; j" l9 E2 U& g3 c2 d
  /* USER CODE BEGIN 3 */
1 P: H5 ?6 P8 A% e   lv_task_handler();' t: m* r3 B& ^, p$ u; Z* V
     HAL_Delay(5);
$ R5 D3 W2 i" n  }

/ h6 _8 W" X# `6 h& J
! D1 G' X7 O, f2 h0 v& P

6 b' x8 x7 ^1 \1 l8 m/ j3 u$ h0 J/ }  P
$ B' T. ]) S/ h! c5 w
8.如果执行不成功,可以去相关的lv_conf.h里面看看设置,这是我修改的设置:
# t4 R2 ]" C+ S; Q" O) y
; F& N5 b8 C% {2 \1 m
8 {7 K  q" c. v" K
其余的我没改。7 r4 u2 v6 W% n, f- _& L3 v) j; A4 q

% O# ]  q7 i% g# l8 G
- X. Q5 J: _( {! Y& v' {% p4 [/ \我的板子显示了在正中心显示了Hello world!,我太懒不想上图。+ ]- C/ l/ f" e; O9 G8 k: J

: f; n8 z/ p. e/ `

* z* P- f5 Z1 w6 X& @9.如果还有什么问题可以去看看,文档,压缩包都有,也可以在这里问我。
8 N- p) W7 {5 \( i3 q# X8 o( P: U. B' X

' D! \  s! x% {/ l+ Y7 g4 O0 C) Y* n) o& v! i/ w% `2 T' W, h
( F$ U7 d7 B7 f4 e3 x1 G  L
  最终对比一下STemwin和这个GUI,在我看来,移植难度来说,都差不多,各有各的困难,他们的接口完全不一样,STemwin的好处显而易见官方支持,还有PC软件支持等。littlevGL就显得一穷二白,可以看到显示一字符串,STemwin就一句GUI_DispStringAt();,这个比较复杂,还需要我们多多开源尝试怎么使用,STemwin结构复杂,我等小小辈难以解释,但是我的使用感受来说,一旦STemwin移植完成,后面的应用会很快。LittlvGL的界面我也就不多说了,炫酷,看起来我很喜欢,扁平科技感爆炸,STemwin如果不改皮肤,很那啥,太老土?
5 L6 q4 B8 Y: Z2 o1 X3 B  最后感谢一下社区吧!很希望社区强大起来,也希望大佬不要吝啬,多多交流。初学者也应该尽量自己去解决问题。此篇仅仅是完善移植过程,部分大佬可以忽略,给小白一点空间,详细的手册和资料,还有活跃的社区是ST的基础啊!1 Z2 o7 W6 U8 k4 c0 o, ^$ V3 L

( c) `$ C, v0 R' w$ t
$ X" V5 }, ]! K$ X3 R" D+ U) \( Z+ G% ?/ v
# T% b" V, R  J& R8 n: p2 \8 s% O

评分

参与人数 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; N6 `) g9 s8 ?  J4 T( H1 C- V" q
这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。 ...
$ t0 j- @& n/ m! _
我知道,我Flash崩了,重新下载安装都没有用。FireFox
Inc_brza 回答时间:2018-5-29 15:04:12
lebment 发表于 2018-5-29 12:07
! J/ u. C/ m) l. v: o$ X我是WIN+SHIFT+S截图粘贴在编辑框的。

. c; ?9 I- ~9 T1 y这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。
lebment 回答时间:2018-5-29 12:07:37
Inc_brza 发表于 2018-5-29 08:43
+ }- N0 S" o0 E4 `7 `你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

/ B& r7 O" Q' C! T: ~2 R我是WIN+SHIFT+S截图粘贴在编辑框的。
lebment 回答时间:2018-5-28 17:50:44
为什么不显示图片
1 V& y, t1 u  d- z  W, K
Inc_brza 回答时间:2018-5-28 17:55:39
试试上传附件?
lebment 回答时间:2018-5-28 18:37:39
Inc_brza 发表于 2018-5-28 17:55. R3 p$ g0 B5 I7 Y6 K0 i" F
试试上传附件?

" j: ^: l, }) L7 E4 v都不行
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
4 I3 i  W. Z4 A3 M你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...
: c$ h0 I( R0 D$ ^. d/ W! p. ]1 B
也试过直接上传,都没有效。7 B8 v* s! e; t! [1 \' i8 ~
lebment 回答时间:2018-5-29 17:21:59
LittlevGL库# a! O% X9 O- V1 E

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
, \, }& @; l# M; A$ B& N我知道,我Flash崩了,重新下载安装都没有用。FireFox
+ S; D! j# R- K5 u
早日抛弃这种垃圾浏览器吧
12下一页

所属标签

相似分享

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