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

stm32f429移植littlevGL

[复制链接]
stary666 发布时间:2018-1-19 00:14
说明一下,工程文件太大了,没办法上传,大家按照我的步骤一步一步即可完成移植$ x' V; p' i/ t4 n2 Q% N* _
+ X8 u* Z2 p+ v2 R! ^0 i
昨夜折腾到3点,在移植一个比较小巧的GUI,用的st的库文件,不是HAL版本的,好不容易移植成功,在添加触摸驱动的文件时,出现了所找的驱动文件是用HAL库函数写的,真想骂ST啊,有毛病,搞那么多版本的驱动,是研发人员太多了,还是有病啊,叫人无语,一时间,也静不下来去仔细研究库文件了,就想直接改成HAL的库,结果悲剧啊,N多错误,把我搞得精疲力尽的,无奈啊。只好下载HAL的库,然后今天白天为了以后使用方便,把工程模板从HAL库中提取出来,本来单位的电脑只有4G内存,就跑不快,这个折腾啊,好不容易,断断续续,花了2个小时才把模板完全提取出来,不用在那一堆文件了折腾了。于是开始移植,有了昨晚的经历,便开始直接移植,上图吧,大家看了就明白了
1 U0 {; J, U; p+ Q这是整个工程的目录,大家参考着搭建,然后把lvgl和lv_examples2个目录直接拷贝到你的工程下,设置好路径,然后把对应的C文件加到工程中,见下面各图。0 ^* [( b: C* q
9 C! h1 G, k, l1 h

! X: ], G3 i7 P1 M8 D/ a' v那些需要,那些不需要的,我没有深入研究,一股脑的全导进来了,先移植成功再说啊,
5 g3 j! k# q7 v, S* T2 C进来一编译,问题多多啊,不用着急,一个一个解决,当然大部分是头文件的路径问题,这些大家自己解决啊,5 g) P* z6 C  S% n
我来说说和路径无关的错误。& r* T9 U# S1 T( A8 `5 K, O4 d4 m
在lv_color.h的60行加入. B3 U3 Y5 p  i1 p! I* `/ O7 q- l2 @- V
#pragma anon_unions这个大家一查就知,不多说
0 y7 |8 Q; f! [* j第145行的函数static inline uint8_t lv_color_to1(lv_color_t color)中的+ e; F7 a. z# q$ ]: ]+ V- E
#elif LV_COLOR_DEPTH == 16
  D/ J: d, g+ ]& w1 ~  l    if((color.red   & 0b10000) ||+ _1 z. k+ L3 f/ @5 d2 D3 v
       (color.green & 0b100000) ||
$ W' S+ r6 N  ?) E- H0 B  V           (color.blue  & 0b10000)) {5 i4 z) e- [9 _0 j+ T+ y
            return 1;
6 [6 a: d! ~5 O' O- |    } else {8 o1 W6 h% L# s9 b; c% F
            return 0;0 ]/ a  j8 ], Q' ?' M# ~4 A" ]8 f
    }
. x, l' \" F9 f, u# I! X' q; `( F. _2 f
改成下面即可8 F: n. b" c; F
#elif LV_COLOR_DEPTH == 16# p, l5 t1 n. P3 O
    if((color.red&0x10) ||(color.green & 0x20) ||(color.blue & 0x10))
) Q* p# T0 V. ~$ b8 N8 c                {( C' ^  h0 n6 Q7 R+ p) R
            return 1;
: l! V! t/ G3 r9 f8 P    } % ?. [2 l1 x1 p5 ~* I, g. L9 s: e
                else ( d" u3 \6 N- {+ f- k5 s9 K* `
                {
: u/ ?3 M" S* E) l/ s            return 0;
( ?- n2 B/ c: f, n. k    }& r7 p% x5 c( K; A5 y; e
lv_txt.c的303行函数, n5 ?5 S3 V2 e5 n+ j5 }3 P, u
uint8_t lv_txt_utf8_size(uint8_t c)0 f, N0 d+ K: L9 r/ ~4 @1 v) |8 L
{
  f8 V. H* Y3 q  Q    if((c & 0b10000000) == 0) return 1;
) B. T1 d% x  I' M7 h# l# o/ U    else if((c & 0b11100000) == 0b11000000) return 2;
* v1 r% G+ k6 p, [9 z" J    else if((c & 0b11110000) == 0b11100000) return 3;
2 o/ Y% x5 h9 A; p1 W- J    else if((c & 0b11111000) == 0b11110000) return 4;         
2 l. |  Y7 k- g6 r0 J( Y% |! {    return 0;2 ]- X  C/ p( Z# Z, X* p( s
}. T4 h9 ?* h/ T  u  j$ z
改成下面的即可
) L; [% x- x6 M1 ?1 l7 P/ o8 Nif((c & 0X80) == 0) return 1;* @# }1 d% p0 K% t+ p. T7 T  ?
    else if((c & 0xE0) == 0XC0) return 2;4 c2 U& H' O$ n
    else if((c & 0XF0) == 0XE0) return 3;8 M  m8 R2 v' p. `- ]4 W
    else if((c & 0XF8) == 0XF0) return 4;  - {6 f1 Z. f1 ]
更改完成编译即可通过了。
# N, [$ }( ~3 M( ~& r下面就是在main函数中添加驱动了,添加如下代码,即可编译,下载了
4 a8 f8 X. T' M& t) M/ h* L4 B. i. o   lv_init();
( I3 J& r" ^1 N3 K, l+ T    tft_init();& r9 d3 c$ x! N8 E9 F( h
    touchpad_init();
# t' v- X. f8 K9 _; ?7 u9 ^1 C
, a4 g, N" E0 f2 Y* f    demo_create();
0 ~5 z6 P+ z% ^
4 v* X2 S  ]% `! c' C( B3 G9 X" O! m  /* Infinite loop */4 T; h; {1 p2 d& a7 F2 p3 V
  while (1)- n" a# N" S' ]/ u
  {. j( H$ x5 r6 H4 ]: {5 M4 n
                HAL_Delay(10);
+ p9 U# p5 v0 `$ f( d1 C& ?4 L                lv_task_handler();        5 \! H6 H- Z. e- U4 U, U0 a; h+ h
  }
* j/ r% p4 T4 g' g* S; v下载后的界面如下
) F8 b; S, ~, \8 w  ?* i
( T" _( A0 J+ |
7 N7 d* c" M1 f
) s/ c* K6 n( J8 d% U4 n! @* }$ Q1 N6 v触摸也是可以用的,所有的代码都是官方,直接使用即可。
+ R0 R! `" Y3 l7 Y3 F) Y& ]7 H* f' r
                                                                      发稿与 2018年1月18日深夜# D; _; d& `. }8 P( H& D' P- _

评分

参与人数 4 ST金币 +31 收起 理由
wolfgang2015 + 10 很给力!
creep + 10 赞一个!
MrJiu + 6 很给力!
Inc_brza + 5

查看全部评分

收藏 4 评论14 发布时间:2018-1-19 00:14

举报

14个回答
hello_bug 回答时间:2018-1-19 07:31:04
感谢分享。想问一下,这个GUI和EMWIN相比,功能和效果上有多大差异。
Inc_brza 回答时间:2018-1-19 09:05:29
谢谢分享
Bowen 回答时间:2018-1-19 10:57:53
不错,支持下~
stary666 回答时间:2018-1-19 12:55:15
谢谢支持,,,,
zero99 回答时间:2018-2-1 09:28:03
来晚了,感谢支持,已汇总到1月技术原创: ]) P8 b7 I) b2 U+ M9 g$ @
https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html
stary666 回答时间:2018-2-1 10:19:17
zero99 发表于 2018-2-1 09:28
% Z3 E8 h! Y; j9 T7 c  i3 F来晚了,感谢支持,已汇总到1月技术原创
% W: K/ R4 _- zhttps://www.stmcu.org.cn/module/forum/thread-614550-1-1.html ...
. `7 e, h  @2 _1 y. {6 k0 H
不晚,今年会多发原创

点评

谢谢支持!  发表于 2018-2-5 13:37
Veiko 回答时间:2018-2-5 15:57:05
感觉很不错哟
stary666 回答时间:2018-2-6 10:21:49
谢谢,,,,
wolfgang 回答时间:2018-5-7 11:37:47
支持并鼓励!!!
stary666 回答时间:2018-5-7 13:08:49
谢谢
liu888888 回答时间:2019-1-14 11:05:50
" u) M) E$ S; e/ S$ U4 f
支持并鼓励!!!
liu888888 回答时间:2019-1-14 16:56:58

5 s- u; H9 d! u6 j6 F3 N" S' z# k. O不错,支持下~
stary666 回答时间:2019-1-15 00:19:42
哈哈哈哈哈哈哈哈

所属标签

相似分享

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