stm32f429移植littlevGL

发布者:annye_cheng最新更新时间:2019-08-28 来源: eefocus关键字:stm32f429  移植  littlevGL 手机看文章 扫描二维码
随时随地手机看文章

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

昨夜折腾到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(二)

推荐阅读最新更新时间:2024-11-17 04:19

iTOP-4412开发板-Android5.1- 移植教程
本文档介绍itop-4412开发板上移植 Android5.1 的教程,包括:基础知识、搭建编译环境、编译、repo 下载、烧写等内容。 需要了解的基础知识有 git 和 repo 工具,这两个工具是程序员必备要会使用的工具;搭 建编译环境是基于 Ubuntu14,这是由 Android 的版本决定的,另外需要至少 120G 的硬盘空间;另外还有使用 repo 下载源码、编译、烧写等等。 1 Git 和 repo Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds(和内核发明人是同一个人)为了帮助管理 Linux 内核开发而开发 的一个开放源码的版本控制软件,
[单片机]
iTOP-4412开发板-Android5.1- <font color='red'>移植</font>教程
I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之u-boot移植
前段时间就开始学习I.MX6Q了,但是最近工作实在是忙,间断了一些时间了。为了提高移植效率,还是考虑移植Freescale维护的3.10版本的内核。 源码获取 Freescale维护的3.10的内核是使用git管理的,但是直接使用git下载代码会比较慢,下面是我下载好的uboot和kernel: I.MX6Q BSP源码(Freescale官方维护) 代码下载好后,先将u-boot解压到工作目录,然后在终端下切换到uboot根目录。由于这个版本的bsp是使用git管理的,因此,需要切换到指定分支。执行指令: git branch -a 可以查看freescale维护的uboot的各个分支,我们checkout的分支
[单片机]
linux-2.6.38到tiny6410的移植手册(连载1)__nand flash
2440的linux移植手册满天飞,到了6410怎么就没有了呢? 既然源码都给了,为什么不把移植步骤写出来,好让大家学习呢? 今日,小弟自搞奋勇,想自己移植一遍linux-2.6.38,参考友善给的源码,觉得既然源码都有了,想发掘移植步骤应该不难吧,嘿嘿 环境 VirtualBox+ubuntu 10.04 编译器,友善自带arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 硬件,tiny6410,核心板号1107 linux-2.6.38到tiny6410的移植手册(连载2)__网卡&NF http://www.arm9home.net/read.php?tid-14211.html linux
[单片机]
STM32F429学习笔记(一)触屏工程Keil建立
由于原来的STM32F103ZET6的flash坏掉了,所以又买了一块STM32F429DISCOVERY,这块板子非常不错,基于Cortex-M4内核,自带一块2.4寸TFT触屏,主频为180M,且内置了ST-Link下载器,使用非常的方便。 近期参加校赛,用它的触屏写了个上位机,当时我是在实验室的电脑和我的平板电脑之间相互拷贝工程,由于ST官方的工程都是公用库文件,所以独立性不强,想要拷贝就得拷贝整个目录,为了解决这个问题,我仔细学习了官方工程的组成与调用,并成功的将所有文件分离出来,建立了一个独立的工程文件夹,以后再拷贝时,只需要将这单个工程拷贝出来,即可方便的移植,其间有不少小插曲,下面就对具体步骤进行详述。
[单片机]
<font color='red'>STM32F429</font>学习笔记(一)触屏工程Keil建立
STM32 移植 STemwin(Touch)
上篇讲到了STemwin的基本移植步骤,这里再讲下Touch的支持。 驱动好自己的触摸屏,准备好测量X,Y 返回为ADC值的函数。这个一般也不难 准备好GUI_TOUCH_X.C文件,这里比较坑的就是这个文件没有包含在STemwin的包里面(至少5.32里面没有),需要自己写一个,其实内容很简单,如下 #include GUI.h #include XPT2046.h void GUI_TOUCH_X_ActivateX(void) { } void GUI_TOUCH_X_ActivateY(void) { } int GUI_TOUCH_X_MeasureX(void) { return XPT2046_R
[单片机]
STM32 <font color='red'>移植</font> STemwin(Touch)
ARM Linux.2.6.34内核移植
ARM-LINUX-GCC版本4.3.2.以安装在/usr/local/arm/4.3.2下. 第一步: 修改linux-2.6.34/Makefile文件,在makefile中找到以下两条信息并做修改 ARCH ? =arm CROSS_COMPILE ?=/usr/local/arm/4.3.2/bin/arm-linux- 第二步: 修改平台输入时钟 修改平台的时钟频率,修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c” 把时钟初始化中(S3C24XX_init_clocks(16934400 ))的16934400 改为12000000,因为我们的开发板上为12M 第三步: 修改机
[单片机]
qwt移植到OK6410
【qwt简介】 QWT ,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。 【QWT 基类】 QwtAbstractScale: 包含刻度尺的所有类的抽象基类; QwtAbstractScaleDraw:绘制刻度尺的抽象基类; QwtA
[单片机]
qwt<font color='red'>移植</font>到OK6410
实速SoC验证技术加快软件开发
最新的消费类设备因采用复杂的 SoC而变得更加强大,这些SoC包含多个嵌入式处理器和成千上万甚至数百万条代码。一个典型的例子是苹果 iPhone,据报道称该产品包含至少3个ARM处理器。在产品上市时间成为关键的情况下,如何在SoC环境下对所有软件进行验证呢?SoC 开发小组越来越多地转向基于FPGA的原型设计,作为快速验证和加快此类产品上市时间的解决方案。 有了基于 FPGA 的原型设计,在SoC上市之前,我们就可以进行软件开发和调试,因为该原型设计比仿真器或模拟加速器的运行速度快10-100倍,软件可以在复杂的操作系统及大型测试环境下进行测试。 然而,实现上述原型设计系统需要克服一系列开发方面的挑战。不过,让人惊讶的是创
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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