|
说明一下,工程文件太大了,没办法上传,大家按照我的步骤一步一步即可完成移植6 }4 O h' [, w9 S* m5 x& W * P5 j3 y- b3 o' ?( F 昨夜折腾到3点,在移植一个比较小巧的GUI,用的st的库文件,不是HAL版本的,好不容易移植成功,在添加触摸驱动的文件时,出现了所找的驱动文件是用HAL库函数写的,真想骂ST啊,有毛病,搞那么多版本的驱动,是研发人员太多了,还是有病啊,叫人无语,一时间,也静不下来去仔细研究库文件了,就想直接改成HAL的库,结果悲剧啊,N多错误,把我搞得精疲力尽的,无奈啊。只好下载HAL的库,然后今天白天为了以后使用方便,把工程模板从HAL库中提取出来,本来单位的电脑只有4G内存,就跑不快,这个折腾啊,好不容易,断断续续,花了2个小时才把模板完全提取出来,不用在那一堆文件了折腾了。于是开始移植,有了昨晚的经历,便开始直接移植,上图吧,大家看了就明白了 这是整个工程的目录,大家参考着搭建,然后把lvgl和lv_examples2个目录直接拷贝到你的工程下,设置好路径,然后把对应的C文件加到工程中,见下面各图。4 Y4 s" h4 N. z : e; r% J" y+ }% y4 P 那些需要,那些不需要的,我没有深入研究,一股脑的全导进来了,先移植成功再说啊, 进来一编译,问题多多啊,不用着急,一个一个解决,当然大部分是头文件的路径问题,这些大家自己解决啊, 我来说说和路径无关的错误。4 e) T) V/ d" S1 \5 L* q# U 在lv_color.h的60行加入/ h6 K g2 G( W4 A #pragma anon_unions这个大家一查就知,不多说4 h7 `# ^3 S# t! S 第145行的函数static inline uint8_t lv_color_to1(lv_color_t color)中的 #elif LV_COLOR_DEPTH == 16# p8 X! d5 e+ M% P if((color.red & 0b10000) || (color.green & 0b100000) || (color.blue & 0b10000)) {9 s9 T( Y& _6 A$ J6 f return 1;% V# y) q3 \* E( W7 t1 j } else { return 0; }$ o* y4 K% T/ D9 C$ z 改成下面即可: E4 U+ n3 p8 Q! w7 G4 i9 z #elif LV_COLOR_DEPTH == 16 if((color.red&0x10) ||(color.green & 0x20) ||(color.blue & 0x10)) { return 1;% h7 r, P5 M# _7 G9 L } " y6 L5 j I. ]2 @- [' p2 P% W else # Y1 w0 r4 Z" E1 ~; ^2 _, Z {" x; {- U) Z4 v5 \7 X' u& l: k return 0; } lv_txt.c的303行函数 uint8_t lv_txt_utf8_size(uint8_t c) {8 d4 ?2 R7 `5 v+ y! u- ^ if((c & 0b10000000) == 0) return 1;: M- W, P& n: I, X8 T& l/ X else if((c & 0b11100000) == 0b11000000) return 2;; C6 M7 w3 {9 I7 y2 @+ M else if((c & 0b11110000) == 0b11100000) return 3; else if((c & 0b11111000) == 0b11110000) return 4; * Z% C" C" R% r9 ]2 X* H; u return 0; } 改成下面的即可 if((c & 0X80) == 0) return 1; else if((c & 0xE0) == 0XC0) return 2;. m- i7 c/ c: i) n. f else if((c & 0XF0) == 0XE0) return 3;' x/ P2 J$ v4 z* s% J else if((c & 0XF8) == 0XF0) return 4; 更改完成编译即可通过了。 下面就是在main函数中添加驱动了,添加如下代码,即可编译,下载了 lv_init();& U5 s- K; K/ X v; i3 [ tft_init(); touchpad_init();( e3 W! r7 B) ~! t9 U demo_create();! k/ G2 e4 _9 A5 W) @( q $ `# c) [* w$ n+ ~ /* Infinite loop */( |2 L* d; k6 ` d9 W, R while (1)9 H, W, Z( [6 @5 h3 _ {7 P% M# Q6 d% A$ Q+ ~4 p HAL_Delay(10);: C5 T# G- _+ _4 V: _7 U lv_task_handler(); }! k- d ]5 c+ I 下载后的界面如下 6 g# ^( x W7 h. x3 c 触摸也是可以用的,所有的代码都是官方,直接使用即可。 发稿与 2018年1月18日深夜0 L) L% l' J4 K |
微信公众号
手机版
https://www.stmcu.org.cn/module/forum/thread-614550-1-1.html
不晚,今年会多发原创
点评
支持并鼓励!!!
不错,支持下~