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

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

完全移植记录之LittlevGL

[复制链接]
lebment 发布时间:2018-5-28 17:47
本帖最后由 lebment 于 2018-5-28 22:34 编辑
/ A# k6 Q1 Z  @' f% [6 v8 [7 R+ |/ l' j, `0 Y; }4 n$ @5 i
  硬件:STM32F407核心板,2.4寸电阻屏(320*240,xpt2048触摸芯片),ST—LINK V2-1;
  C2 X6 Y9 O, Q- b3 P% O0 R) p# W  软件:MDKv5.25,CubeMX最新版,最新版F4库,LittlevGL版本5.1。
/ w6 a  G9 _2 _
  O  h+ A/ l& V; j1 L  官网下载最新版本的LittlevGL的源码,有需要的同学可以下载附件。其中有三个包,lvgl文件夹是我们LittlevGL的源码,lvgl examples文件夹是一些应用例子,lvgl Driver是一些屏幕驱动基本上用不到。
. T) @8 Z$ H2 E3 s  E. P6 s8 C! x$ p# x& j  省去板子初始化,BSP的编写,直接主题。
$ Z7 e* X/ g" a9 T$ j" \  
* W7 c* A8 {" X& g: @
/ e" T4 u  _# c1 a/ o
            
; y+ h! ^& u; P4 b

3 s/ t2 D( ?$ a( z; B8 H* [1 n, S. E2 Q4 n9 r3 R( c" m" F* L, v
0 J7 ?) B9 k0 L2 O* g1 \8 t
' Q0 R2 T+ X. n4 H5 V+ X( s

7 Q0 f; s, w; T" l' g5 S  1.在工程文件夹内加入LittvGL文件夹,该文件夹如图
0 x6 v/ s% E  j+ K* i

: p, U4 ?7 a$ W    把里面所有C文件加入你的工程!先不要编译,会有很多错。& ^$ T+ _: E2 R. S$ f

) d, n3 O' F4 O3 A  2.其中的lv_conf.h原名是lv_conf_templ.h,这个头文件必须放在lvgl旁,最好是按我这个来移植。不然需要改很多包含头文件的代码。  
6 _- j0 W  \+ w$ G& y3 U  A# z
  o* B2 o* |3 @/ C1 f
  3.In the lv_conf.h delete the first `#if 0` and its `#endif`. Let the default configurations at first.0 p9 \$ E! M, @  r$ y' G. X
" l& d4 h6 i* F' v$ U) _9 b

) F+ S; u8 {7 Z/ z/ e" v  4.lv_tick_inc(1)这是个GUI心跳  如图:. z5 c( [2 L2 ?/ L8 {/ T; `
- M2 n/ R4 t5 I  m0 o
  5.找到压缩包里的lvgl examples文件夹下的lv_tutorial文件夹,打开
' L7 U; P' b4 J9 X* {  直接复制粘贴里面的0_Porting的C文件和头文件到你的工程里,我改它名字在第一幅图lv_Proting.c,里面的代码相应要做修改。
- U4 b) l1 N; j1 r  6.现在介绍如何修改里面的代码
1 \' w1 p$ M1 j' t1 ?7 a      你的屏幕初始化程序2 n3 w5 {$ R. n7 u  \+ M! M
        你的打点程序1 q: ^: n) l- Y$ W. {
      还是你的打点程序
* |' l0 `  o. }' l5 r$ ^3 ]2 s8 N* r$ E+ Z) d

( I# G2 C  x; g* [& `   依然是你的打点程序
. B  J% V& |# m# A# t- o7 k+ c8 m0 y: @% y/ g8 C- V- W9 r3 i

/ z" ?* U' L" O终于到了你的触摸屏
+ f$ n+ m9 s% d: a9 y/ q
& h. M& a. J- C

- N- U% m& h; [7 l& o! a
) H; q; s+ {- b, Y/ T9 Z  q$ v
8 |* V& H% D  o4 c3 `0 I5 {( x
编译一下,可能你会出现一些匿名结构体之类的Error,先排除这个Error,找到相关头文件,加一句#pragma anon_unions就可以灭掉大部分错误了。
6 u! k) f7 t) D8 B+ Z* O% T8 M, o4 L1 Q4 k2 k7 @$ h
   
- }: `$ b2 G: U2 n  C5 O
( [6 n1 M7 F( L- S5 ]
7.开始Hello world!测试,复制粘贴下面的句子,
& y4 z8 B) P0 \0 V    lv_obj_t * label1 =  lv_label_create(lv_scr_act(), NULL);6 W5 _* r, E/ b3 Y4 c
    /*Modify the Label's text*/
. A4 p8 Z! y% a# m7 V4 }    lv_label_set_text(label1, "Hello world!");' m3 u4 _  C$ E% u& c0 Q( f. @: |
    /* Align the Label to the center2 t5 f# }" b0 Z5 g( v6 C
     * NULL means align on parent (which is the screen now)
( ?1 `7 V* Q- E7 ]( p* n  M     * 0, 0 at the end means an x, y offset after alignment*/
0 t1 U. @( s+ O6 c& F$ ~    lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, 0);
" |9 {+ D; ~, g4 h# _
6 m) A' H  p( e, E) H

0 u3 T6 t1 O" X
' E% E- T% T+ S5 |

0 ~: c6 A; `9 Q) Y. [/ N
1 w8 n# }9 W  I5 \! c5 G; Y( d
  while (1)" C& P! V- V) Z- U) v3 o$ ]
  {
4 [6 Y4 c6 Y2 `5 S' l" m. X9 w" U7 [
+ A" d% g( `" }/ o- p% r- C  /* USER CODE END WHILE */4 G& \0 L3 }1 ~/ j
  z; e' l9 \6 N( i( Y- @
  /* USER CODE BEGIN 3 */
- j6 G1 F% N5 V+ h" S# f# A: J( o6 k   lv_task_handler();
  R5 m! J  @$ ]& J     HAL_Delay(5);
0 I7 B- \" Z/ O2 H( \  }
5 }2 h8 z- t0 z2 y2 S/ Q

$ M% v' l+ j. r9 b6 a2 O
9 w  o" K/ ]' G/ L  l$ U  Y
* a. S# I% k/ ~
* d: n: s6 N5 c1 @6 X
8.如果执行不成功,可以去相关的lv_conf.h里面看看设置,这是我修改的设置:
0 y' ]2 i" k& J: j7 U$ D$ x+ E2 L5 a) Q/ Z7 `: \) _1 h2 V
. u% b* ?3 j0 _5 a  o# ?' n
其余的我没改。
- {- O) Q) _7 Q+ S* @
* d  b6 @7 n' Z. N7 B
- R6 W" A7 p. M; M" ]* a7 E0 e- R我的板子显示了在正中心显示了Hello world!,我太懒不想上图。& `5 F2 U. a6 b; c. E8 Y

! y5 g6 w" h8 D/ W2 {- U

% ~7 R  e! G' F, P6 k& a: A0 f9.如果还有什么问题可以去看看,文档,压缩包都有,也可以在这里问我。: k! V/ v" \2 k. r! y# z

6 \) o# a+ r) F7 x8 [" K

9 H1 ^! d' M1 p; {3 h" @
7 g* O5 i# `) J" Z0 G. A- H
2 W, e" J/ @9 K. u* z
  最终对比一下STemwin和这个GUI,在我看来,移植难度来说,都差不多,各有各的困难,他们的接口完全不一样,STemwin的好处显而易见官方支持,还有PC软件支持等。littlevGL就显得一穷二白,可以看到显示一字符串,STemwin就一句GUI_DispStringAt();,这个比较复杂,还需要我们多多开源尝试怎么使用,STemwin结构复杂,我等小小辈难以解释,但是我的使用感受来说,一旦STemwin移植完成,后面的应用会很快。LittlvGL的界面我也就不多说了,炫酷,看起来我很喜欢,扁平科技感爆炸,STemwin如果不改皮肤,很那啥,太老土?8 ^$ B, B. |6 N5 m: s
  最后感谢一下社区吧!很希望社区强大起来,也希望大佬不要吝啬,多多交流。初学者也应该尽量自己去解决问题。此篇仅仅是完善移植过程,部分大佬可以忽略,给小白一点空间,详细的手册和资料,还有活跃的社区是ST的基础啊!1 ~5 g9 @% `0 F( A
; x  ]' y: U" X+ a
/ t2 @" `( J6 a1 _
: Q* D" ~3 H6 m

' r) T3 h8 [- p

评分

参与人数 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
# I2 A7 j% ~6 V& |# Q* e这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。 ...
+ E/ g: s) `- k* [) R
我知道,我Flash崩了,重新下载安装都没有用。FireFox
Inc_brza 回答时间:2018-5-29 15:04:12
lebment 发表于 2018-5-29 12:071 p7 l! x* @, z# N; n
我是WIN+SHIFT+S截图粘贴在编辑框的。

; e. J6 P3 \( U* h: q9 q1 }; f6 J5 p这样是不行的,要点击上传附件,把附件上传后,再按附件,你的图片就会显示再你的帖子上了。
lebment 回答时间:2018-5-29 12:07:37
Inc_brza 发表于 2018-5-29 08:43
4 X+ L* b, s. r. a你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...
. L/ _# C5 P5 P' |0 Y
我是WIN+SHIFT+S截图粘贴在编辑框的。
lebment 回答时间:2018-5-28 17:50:44
为什么不显示图片* C$ g1 P3 v( A4 A, d. J
Inc_brza 回答时间:2018-5-28 17:55:39
试试上传附件?
lebment 回答时间:2018-5-28 18:37:39
Inc_brza 发表于 2018-5-28 17:558 s$ k" k. _2 Q: z3 t% U; U
试试上传附件?

, v, d+ J6 H0 M& i- j, s& E都不行
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
( W" K2 A! K2 R; X你应该是真没有上传附件,这样把,你把图片弄成压缩包上传附件,我来帮你弄 ...

. Y! m4 y6 K! X6 r9 X# v  ?5 l也试过直接上传,都没有效。
. {8 J* c& G+ T
lebment 回答时间:2018-5-29 17:21:59
LittlevGL库
, l: R6 z, o7 c8 g

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% Z4 E  `+ |$ ^5 g
我知道,我Flash崩了,重新下载安装都没有用。FireFox

  ]5 N0 u, E8 B' L# T9 Z早日抛弃这种垃圾浏览器吧
12下一页

所属标签

相似分享

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