说明一下,工程文件太大了,没办法上传,大家按照我的步骤一步一步即可完成移植

昨夜折腾到3点,在移植一个比较小巧的GUI,用的st的库文件,不是HAL版本的,好不容易移植成功,在添加触摸驱动的文件时,出现了所找的驱动文件是用HAL库函数写的,真想骂ST啊,有毛病,搞那么多版本的驱动,是研发人员太多了,还是有病啊,叫人无语,一时间,也静不下来去仔细研究库文件了,就想直接改成HAL的库,结果悲剧啊,N多错误,把我搞得精疲力尽的,无奈啊。只好下载HAL的库,然后今天白天为了以后使用方便,把工程模板从HAL库中提取出来,本来单位的电脑只有4G内存,就跑不快,这个折腾啊,好不容易,断断续续,花了2个小时才把模板完全提取出来,不用在那一堆文件了折腾了。于是开始移植,有了昨晚的经历,便开始直接移植,上图吧,大家看了就明白了

这是整个工程的目录,大家参考着搭建,然后把lvgl和lv_examples2个目录直接拷贝到你的工程下,设置好路径,然后把对应的C文件加到工程中,见下面各图。

那些需要,那些不需要的,我没有深入研究,一股脑的全导进来了,先移植成功再说啊,

进来一编译,问题多多啊,不用着急,一个一个解决,当然大部分是头文件的路径问题,这些大家自己解决啊,

我来说说和路径无关的错误。

在lv_color.h的60行加入

#pragma anon_unions这个大家一查就知,不多说

第145行的函数static inline uint8_t lv_color_to1(lv_color_t color)中的

#elif LV_COLOR_DEPTH == 16

    if((color.red   & 0b10000) ||

       (color.green & 0b100000) ||

           (color.blue  & 0b10000)) {

            return 1;

    } else {

            return 0;

    }


改成下面即可

#elif LV_COLOR_DEPTH == 16

    if((color.red&0x10) ||(color.green & 0x20) ||(color.blue & 0x10)) 

                {

            return 1;

    } 

                else 

                {

            return 0;

    }

lv_txt.c的303行函数

uint8_t lv_txt_utf8_size(uint8_t c)

{

    if((c & 0b10000000) == 0) return 1;

    else if((c & 0b11100000) == 0b11000000) return 2;

    else if((c & 0b11110000) == 0b11100000) return 3;

    else if((c & 0b11111000) == 0b11110000) return 4;         

    return 0;

}


改成下面的即可

if((c & 0X80) == 0) return 1;

    else if((c & 0xE0) == 0XC0) return 2;

    else if((c & 0XF0) == 0XE0) return 3;

    else if((c & 0XF8) == 0XF0) return 4;  

更改完成编译即可通过了。

下面就是在main函数中添加驱动了,添加如下代码,即可编译,下载了

   lv_init();

    tft_init();

    touchpad_init();


    demo_create();


  /* Infinite loop */

  while (1)

  {

                HAL_Delay(10);

                lv_task_handler();        

  }


下载后的界面如下


触摸也是可以用的,所有的代码都是官方,直接使用即可。


关键字:stm32f429  移植  littlevGL 引用地址:stm32f429移植littlevGL

上一篇:STM32F429之使用FPU和DSP
下一篇:STM32F429 >> 22. FMC_扩展外部SDRAM(二)

推荐阅读

在最近举行的2018世界机器人大会上,机器人前沿技术和产业发展话题引起社会关注。我国机器人产业现状如何?呈现出哪些趋势和特点?还有什么发展短板?应当怎样抓住下一代机器人发展机遇? 工业机器人、服务机器人、特种机器人发展较快,应用场景不断丰富 与消费者所说的机器人不同,行业内一般将机器人分为工业机器人、服务机器人、特种机器人三类。工...
智慧屏与智屏一字之差,但却千差万别。 前者是8月10日华为推出荣耀智慧屏,试图用智慧屏重新定义电视的未来。 后者,是TCL8月16日在深圳首次亮相推出的智屏。这是TCL·XESS智屏新品包含“超级VUI、巨屏手机、AI大屏”三大属性的新物种智屏正式亮相。如果从形式和技术上来看,智屏优势更加明显。 其实,布局智屏电视并非刚刚开始。TCL实业CEO 王成接受采访...
以前稍微写过操作系统上的C程序,感受不出来:BSS段,堆栈的意义。到了在单片机上写程序也没有考虑这些问题。但是到了ARM上环境似乎没有那么简单了,C的环境要自己来创建,不然就不能用。这也深刻的感受到了C语言中原来难以理解的概念。裸机建立C语言环境-设置堆栈指针这个是使用C语言的首要条件,不过这个就是指定一个sp指针就可以了,很简单的。ldr sp,...
导读:欧洲电池制造商InoBat公司宣布与美国电池材料供应商Group14 Technologies公司进行合作,将使用Group14的专利硅基负极材料为汽车生产高能量密度的电池。InoBat公司表示,高能量密度电池市场需求飙升,相比传统锂离子电池,硅基负极材料的单位体积能量密度更高。Group14表示,能源部已经认可其“新颖的、可投入使用的纳米材料和可靠的工业规模工艺”...

史海拾趣

问答坊 | AI 解惑

eboot编译的问题

本来一直在dos用build -c编译也没问题 ,今天在pb下用编译bsp,然后用 build -c编译eboot就产生这样的错误了 return  E:\\WINCE500\\PLATFORM\\SMDK2410\\SRC\\BOOTLOADER\\EBOOT\\.\\nand.c BUILD: [01:0000000056:INFO  ] ...…

查看全部问答∨

ARM存储空间

我在书上看到:             ARM体系使用单一的和平板地址空间。该地址空间大小为2^32个8位字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0~2^32-1。         & ...…

查看全部问答∨

bmp图象无损压缩,求算法

#include "stdio.h" #include "stdlib.h" #include "string.h" typedef unsigned char BYTE; typedef unsigned long DWORD; typedef unsigned short WORD; #include <pshpack2.h> typedef struct {    & ...…

查看全部问答∨

讨论一下接串口的设备tty驱动的可行性

接串口的设备是红外接收模块。 因为驱动的工作流程: handle_scancode-->|tty_queue|-->|tty_ldisc|-->/dev/ttyX 而红外接收模块的通讯协议略不同于串口的通讯协议。 所以,串口接收到的数据是需要正确解析。 为此类的设备写tty驱动,可 ...…

查看全部问答∨

香主,请教一个outputcompare问题

um0427FWLibexamplesTIMTimeBase  例程中,是用TIM2作为定时器 ,然后从TIM3的4根GPIO管脚输出不同频率的波形。我现在有个问题:不能从TIM2的4根GPIO管脚输出吗?  (我把例程的输出管脚改为TIM2上的 PA0,PA1,P ...…

查看全部问答∨

F2812的FLASH烧写成功,奇怪警告让程序没跑起来

我的F2812仿真正常,烧写FLASH时Erase/Program/Verify Operation succeeded,但是出现了这个警告,结果是程序没有跑起来 “Warning: This program contains initialized RAM data. It may run successfully under Code Composer Studio but not a ...…

查看全部问答∨

求助

【求助】我打算选430芯片做频率测量,测量范围100K~200K(无丢失),RAM大于1K,串口1个,没有其它特殊要求,请大家帮忙选型,谢谢!…

查看全部问答∨

MSP430-RF2500使用心得(1)

没玩过MSP430,正好有个设计任务,申请后很快得到回复,试验装到达后发现东西很精致,不错!首先在TI官方网站了解了MSP430-RF430的特性以及用途,及其使用现状。然后直接进入SimpliciTI协议的研究,SimpliciTI是很简单的LISTEN(),LINKTO()模式,END ...…

查看全部问答∨

都来说说你如何阅读源程序吧

说起来,很少正儿八经读别人的源程序。经常是喜欢直接看时序,看电路图,然后直接写程序,当然写的都是简单程序。后来工作所需,写串口,网络通信程序,当然没办法完全自己写,就参考例程,在原基础上调试增减API。虽说要改首先要看懂。但那些基本 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved