历史上的今天
返回首页

历史上的今天

今天是:2024年08月28日(星期三)

正在发生

2019年08月28日 | stm32f429移植littlevGL

2019-08-28 来源:eefocus

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

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

  }


下载后的界面如下


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


推荐阅读

史海拾趣

Component General Inc公司的发展小趣事

Component General Inc公司的创立,标志着电子行业中一颗新星的升起。自XXXX年成立以来,公司始终致力于射频/微波设计领域的研发与生产。起初,公司只有几名创始人和一些基础的研发设备,但他们凭借着对技术的热情和执着,成功地开发出了首款高功率电阻器,这为公司后续的发展奠定了坚实的基础。

台湾岱恩(DAIN)公司的发展小趣事

在技术创新的基础上,Component General Inc公司开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,与多家海外企业建立了合作关系。同时,公司也注重品牌建设,通过参加各种行业展会、举办技术研讨会等方式,提升公司的知名度和影响力。

Cornerstone Sensors公司的发展小趣事

Cornerstone Sensors公司成立于电子行业的蓬勃发展时期。创立初期,公司就明确了以传感器技术为核心的发展方向。公司聚集了一批优秀的工程师和科学家,致力于研发高精度、高稳定性的传感器产品。经过数年的技术积累和产品研发,Cornerstone Sensors逐渐在传感器领域崭露头角,其产品质量和技术水平得到了行业的广泛认可。

Aptina (ON Semiconductor)公司的发展小趣事

在被ON Semiconductor收购后,Aptina作为ON Semiconductor的一部分,继续保持其技术优势和市场竞争力。ON Semiconductor对Aptina进行了整合与发展,将其纳入公司的整体战略中。通过资源共享、技术互补和市场协同,Aptina在ON Semiconductor的支持下实现了更快速的发展,并继续为全球客户提供高质量的图像传感器产品。

综上所述,Aptina (ON Semiconductor)公司的发展历程充满了挑战与机遇。从初创时期的艰难起步到技术突破与专利积累,再到与索尼的专利交叉许可和被ON Semiconductor收购,每一个阶段都见证了公司的成长与蜕变。如今,作为ON Semiconductor的重要一员,Aptina将继续在图像传感器领域深耕细作,为全球消费者带来更多优质的产品和服务。

康奈特(CNNT)公司的发展小趣事

面对数字化浪潮的冲击,康奈特积极响应并开始了数字化转型之路。公司引进了先进的智能制造设备和技术手段,实现了生产线的自动化和智能化升级。同时,公司还建立了数字化管理平台,实现了对生产、销售、库存等各个环节的实时监控和管理。这种数字化转型不仅提高了生产效率和质量稳定性,也为公司未来的发展奠定了坚实的基础。

Dean Technology公司的发展小趣事

Dean Technology公司起源于上世纪80年代,当时电子行业正经历着飞速的发展。创始人凭借其深厚的电子技术背景和敏锐的市场洞察力,决定进入高压二极管领域。他带领研发团队不断攻克技术难题,成功推出了一系列性能稳定、品质可靠的高压二极管产品,奠定了公司在行业中的技术领先地位。

问答坊 | AI 解惑

电压不足期间支持电信电源的小电容

本设计实例介绍如何在短暂电压不足期间使电信设备保持正常工作。首先必须了解电信设备专用电源的几个细节。向电信设备馈电的电源的共模电压为-48V,尽管实际电压范围可能是-42.5V ~ -56V、-40V ~ -60V,甚至超出这些范围。公共电源——“砖块”DC/D ...…

查看全部问答>

最近在看FLASH的资料,想用FPGA进行写入和读出

最近在看FLASH的资料,想用FPGA进行写入和读出 高手讲讲怎么做啊…

查看全部问答>

我在深圳五年的销售心得

关于我自己      1、业务员和客户聊天的时候哪些话题不需要聊太多关于技术和理论的话题,需要的是今天的新闻呀、天气呀等话题。因此,业务员在日常的时候必须多读些有关经济、销售方面的书籍、杂志,尤其必须每天阅读报纸,了解国家、社会消 ...…

查看全部问答>

SABER与控制系统仿真

SABER与控制系统仿真…

查看全部问答>

麻烦有能力的高手提供下设计思路!谢谢了

单位需要设计一种ISA转PCI的接口卡 用途是把以前老设备上面的ISA接口卡(主要是s1240程控机)转用点现在PCI口上使用.通过查询资料,我发现用专用芯片pci9052 似乎是最省力的办法。但是由于本人学的是通信专业,对硬件设计基本不明白,数电模电忘记差 ...…

查看全部问答>

Shell组件的选择问题??

   用PB编制系统镜像,由于用到SHFileOperation复制文件,但是显示进度框上没有取消按钮 别的版本的机器则可以...不知道这个跟什么组件选择还有关系,还有就是ceshell.dll是怎么生成的 新手请教各位大虾!!…

查看全部问答>

对eeworld的点点建议

这样问也不知道冒不冒昧,但是还是得问问soso姐,姐姐,从我个人在论坛每个子模块查资料找东西来看,我觉得子模块有点乱,咱们能不能把子模块中的帖子细细分下类呢?比如说,软件和资料,我们把模块细化分一下类,新回复的东西还是固有不变,这样大 ...…

查看全部问答>

电源变压器

本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 …

查看全部问答>

ARM Crotex-m0程序跳转BX

128KB的Flash中我存储了两段程序 第一个基址是0x00000000 第二个基址是0x00001000  这两个程序是不相关的,独立的, 第一个程序我是用新唐的ICP软件下载的,第二个程序是我通过自己写在LDROM中的程序下载到0x00001000 , 现在我希望能够 ...…

查看全部问答>

易電源學習心得

易電源學習心得剛剛參加了玩遊戲,體驗易電源。正如題所示,通過遊戲來體驗易電源的通俗學習方式,通過學習易電源,深深體會IT設計工程師的初衷,特別在介紹個單位器件時詳細說明。遊戲中,大大啓發我們對電子的好奇心。想想原來如此簡單的電路在操 ...…

查看全部问答>