0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

添加柿饼库到工程并完成LCD驱动和触摸驱动的对接

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:刘端飞 2021-05-10 14:25 次阅读

说是移植,实际上是添加柿饼库到工程,并完成LCD驱动和触摸驱动的对接,其中LTDC驱动SDK中已经完成了移植,RGB屏的移植主要就是时钟频率和屏幕面板参数的修改。对于其他屏幕则需要按照LCD设备框架的要求完成对接。所以说,只要完成了对LCD设备框架和touch设备框架的对接,移植过程就完成了90%。

说明

1 柿饼UI:

Persimmon 是一套运行在RT-Thread嵌入式实时操作系统上的图形用户组件界面,用于提供图形界面的用户交互。它采用C++语言编写,基于C语言实现的底层图形像素引擎,为上层应用提供了控件、窗口、signal/slot,手势动画等机制。为了提高UI的开发灵活性、降低用户开发时间和成本,Persimmon 提供了所见即所得的UI设计器。用户可通过设计器轻松实现UI界面设计,并利用JavaScript脚本实现对界面逻辑的控制。

2 ART-Pi

RT-Thread 团队精心准备推出的极具扩展性的 DIY 开源硬件

准备工作

工具:

RT-Studio RT-Thread推出的一站式IDE。

下载链接:https://www.rt-thread.org/page/studio.html)

UI设计器 柿饼配套的设计器。

ART-Pi 本次移植需要的硬件平台。

RGB屏幕 ART-Pi的lcd接口跟正点原子一样,其他屏幕请看原理图做专门的转接板。

多媒体扩展板 ART-Pi配套的多媒体扩展板。

本次移植的RGB屏幕为正点原子 800x480分辨率的七寸屏,触摸芯片为FT5426。

整个工程在art_pi_blink_led 基础上移植,SDK版本为 v1.1.0。

下面对整个过程进行说明。

1.新建工程

RT-Studio中安装ART-Pi的sdk。新建一个art_pi_blink_led 工程。

2.添加柿饼库

这里以Kconfig的方式添加柿饼库文件,在文件art_pi_blink_ledlibrariesKconfig中添加下面的代码。为方便复制,贴在图下面。

9a10a3dc-b03c-11eb-bf61-12bb97331649.png

config PKG_USING_PERSIMMON_SRC

bool “Using Persimmon Library”

select RT_USING_CPLUSPLUS

select PKG_USING_FASTLZ

select PKG_USING_EZXML

select RT_USING_I2C

default n

上面的配置是柿饼库所依赖的软件包和RTT的配置选型,简单说明一下,柿饼库的使用需要依赖fastlz软件包和ezxml软件包,同时还需要开启C++和i2c,否则编译会报错。

添加完保存之后,点击RT-Thread Setting

分别使能 LCD驱动,文件系统(flash),wifi,柿饼库,ftp库。

下图为开启LCD支持,这里指的是开启外设ltdc支持,这样系统启动后就会自动注册lcd设备供柿饼库使用。

9a1c9f20-b03c-11eb-bf61-12bb97331649.png

下图为开启wifi支持和flash文件系统支持,柿饼的UI文件需要在文件系统中加载,通过wifi联网可以方便使用ftp库传输UI文件,非常方便。

9a25a02a-b03c-11eb-bf61-12bb97331649.png

下图为开启柿饼库和ftp库支持,前面添加的Kconfig代码这个就以图形配置的方式显示,通过点击就能使能。

9a4849ea-b03c-11eb-bf61-12bb97331649.png

设置lwip,ftp库需要更多的资源配置,按照下图配置lwip,不然传输过程会出现失败的情况,配置好之后保存。

9a534070-b03c-11eb-bf61-12bb97331649.png

添加文件

上面几个步骤只是添加了柿饼库的文件,要想启动柿饼库还需要添加额外的文件,在工程applications文件夹下添加启动柿饼UI所需要的文件,如下图所示。

9a5e4b28-b03c-11eb-bf61-12bb97331649.png

在main.c中添加使能ftp的相关代码。

9a817ec2-b03c-11eb-bf61-12bb97331649.png

保存配置并编译

9ac20064-b03c-11eb-bf61-12bb97331649.png

可以看到,柿饼库成功链接,编译尺寸还是比较大的。

下载

此时下载之后屏幕点亮,还不能显示界面,这是因为柿饼的UI文件还没有加入到flash文件系统中,下面加入柿饼UI文件,采用ftp协议传输柿饼UI文件。

连接网络

使用命令 wifi join 《ssid》 《password》连接网络。

待获取IP后连接ftp服务器,如下图所示:

其中IP为实际的IP地址,用户名和密码为 loogg,端口号为21。

9aff1044-b03c-11eb-bf61-12bb97331649.png

test文件夹上传到flash文件系统中。

传输完成后,执行命令reboot重启系统

执行命令persim_start启动柿饼UI,可以看到屏幕上有图像产生,但是显示不对,这是由于参数配置的问题。

按照下图文件修改工程中的屏幕参数配置,本人用的正点原子屏幕的配置参数如下:

9b2c0180-b03c-11eb-bf61-12bb97331649.png

重新编译下载:

执行命令 persim_start,可以看到界面已经正常显示了。

如果你的屏幕和本人的不一样,请参考屏幕的面板手册修改上面的参数,这里说明一下LTDC时钟配置:在H7的手册上可以看到

LTDC外设的时钟来自pll3_r_ck,这个时钟由晶振经过PLL3提供,如下图:

9c78d3d8-b03c-11eb-bf61-12bb97331649.png

在board.c中有如下代码,经过计算LTDC的时钟为:25M(晶振)/5*160/24 = 33.3MHz,符合屏幕要求。如果这里计算的频率和你的屏幕不匹配,请按需修改,同时修改lcd_port.h中面板的其他参数。

9ce9a7a2-b03c-11eb-bf61-12bb97331649.png

添加触摸

下载软件包,正点原子这块屏所实用的触摸IC为ft5426,该触摸芯片本人已制作成软件包,所以直接添加就可。

添加添加软件包和touch.c文件,如下图:

9cf31922-b03c-11eb-bf61-12bb97331649.png

使能触摸的初始化代码:

9d062d82-b03c-11eb-bf61-12bb97331649.png

该触摸芯片采用i2c控制,根据引脚设置配置使能i2c1,如下图:

9d17f440-b03c-11eb-bf61-12bb97331649.png

保存,编译下载:

启动柿饼UI,点击按钮,触摸OK

如果你用的触摸IC和本人的不一样,请先根据touch框架移植好触摸驱动,最好做成软件包的方式也方便他人使用,然后在touch.c文件中添加相应的初始化函数,其中柿饼UI的触摸事件上报的代码已经添加不需要修改。

原文标题:柿饼UI在ART-Pi上的移植

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4276

    浏览量

    164049
  • 驱动
    +关注

    关注

    11

    文章

    1717

    浏览量

    84338

原文标题:柿饼UI在ART-Pi上的移植

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瑞萨MCU内置LCD控制器/驱动器的数据驱动显示

    如R7F0C001G/L、R7F0C002G/L内置用于驱动电源的电容分割电路。通过外接电容分割电路的电容器(0.47μF ±30%),生成LCD驱动电压。
    发表于 03-15 14:26 90次阅读
    瑞萨MCU内置<b class='flag-5'>LCD</b>控制器/<b class='flag-5'>驱动</b>器的数据<b class='flag-5'>驱动</b>显示

    labview怎么添加设备驱动

    添加设备驱动是使用LabVIEW进行设备控制和数据采集的关键步骤之一。本文将向您介绍如何在LabVIEW中添加设备驱动程序。 在开始之前,您需要明确了解所要
    的头像 发表于 01-02 16:10 812次阅读

    LCD的通用驱动电路IP核设计

    电子发烧友网站提供《LCD的通用驱动电路IP核设计.doc》资料免费下载
    发表于 11-15 11:15 1次下载
    <b class='flag-5'>LCD</b>的通用<b class='flag-5'>驱动</b>电路IP核设计

    安全驱动如何添加系统服务

    添加系统服务 系统服务的添加不是必需的,为方便对底层驱动的管理和对外部设备的扩展,可将安全驱动的接口接入到某个系统服务中,通过系统服务向外界暴露调用接口,以便上层TA可以使用该安全
    的头像 发表于 10-30 16:12 303次阅读
    安全<b class='flag-5'>驱动</b>如何<b class='flag-5'>添加</b>系统服务

    基于 TouchGFX 生成的代码中添加触摸功能的方法

    基于 TouchGFX 生成的代码中添加触摸功能的方法
    的头像 发表于 10-27 09:21 570次阅读
    基于 TouchGFX 生成的代码中<b class='flag-5'>添加</b><b class='flag-5'>触摸</b>功能的方法

    记录为BL808添加GPIO驱动

    该文主要记录为 BL808 BSP 添加 GPIO 驱动时踩到的一些坑及解决方案。这是我第一次对接 RT-Thread BSP 的驱动,整理出本文避免之后踩到同样的坑,也希望能帮助到和
    的头像 发表于 10-13 11:18 384次阅读

    如何添加触摸驱动到TouchGFX中?

    使用STM32CubeMX移植TouchGFX 一文中介绍了如何用TouchGFX点亮屏幕,但是此时屏幕还没有触摸的功能。下面将介绍如何添加触摸驱动到TouchGFX中
    的头像 发表于 10-09 14:41 1048次阅读

    如何实现StarterWare开发环境下的LCD触摸控制?

    要实现LCD的显示与触摸,主要需要LCD驱动器和LCD控制器,LCD控制器一般又分为显示控制器和
    发表于 10-08 17:32 390次阅读
    如何实现StarterWare开发环境下的<b class='flag-5'>LCD</b><b class='flag-5'>触摸</b>控制?

    国产化教学实验箱_嵌入式教程:2-5 LCD触摸屏触控实验

    一、实验目的 本节视频的目的是学习LCD控制器的控制原理原理,实现StarterWare开发环境下的LCD触摸控制。 二、实验原理 1、LCD
    发表于 10-08 15:54

    GIC驱动设备信息添加

    设备信息添加 ARM平台的设备信息,都是通过Device Tree设备树来添加,设备树信息放置在arch/arm64/boot/dts/下 下图就是一个中断控制器的设备树信息: compatible
    的头像 发表于 09-28 15:03 181次阅读
    GIC<b class='flag-5'>驱动</b>设备信息<b class='flag-5'>添加</b>

    高稳定LCD驱动/段码液晶屏驱动芯片/温控表LCD驱动IC-VK0192 LQFP44介绍

    产品型号:VK0192 产品品牌:永嘉微电/VINKA 封装形式:LQFP44 产品年份:新年份 原厂,工程服务,技术支持   C21-316 概述:VK0192是一个24x8的LCD驱动
    的头像 发表于 08-26 14:25 457次阅读
    高稳定<b class='flag-5'>LCD</b><b class='flag-5'>驱动</b>/段码液晶屏<b class='flag-5'>驱动</b>芯片/温控表<b class='flag-5'>LCD</b><b class='flag-5'>驱动</b>IC-VK0192 LQFP44介绍

    32x8的LCD驱动器VK0256/B/C介绍

    VK0256/B/C是一个32x8的LCD驱动器. 可软件程控使其适用于多样化的LCD应用线路。仅用到3至4条讯号线便可控制LCD驱动器,除
    的头像 发表于 08-23 22:32 347次阅读
    32x8的<b class='flag-5'>LCD</b><b class='flag-5'>驱动</b>器VK0256/B/C介绍

    LCD驱动芯片/液晶IC/省电液晶驱动VK0192 LQFP44 FAE支持

    VK0192是一个24x8的LCD驱动器. 可软件程控使其适用于多样化的LCD应用线路,仅用到3至4条讯号线便可控制LCD驱动器,除此之外亦
    的头像 发表于 08-16 10:23 326次阅读
    <b class='flag-5'>LCD</b><b class='flag-5'>驱动</b>芯片/液晶IC/省电液晶<b class='flag-5'>驱动</b>VK0192 LQFP44  FAE支持

    TFT-LCD电容触摸屏模块(RGB接口)驱动时序设计

    上两篇已经总结和分享了RGB接口TFT-LCD触摸屏的相关内容。本篇使用Verilog语言实现RGB的驱动时序。
    的头像 发表于 05-25 12:47 2417次阅读
    TFT-<b class='flag-5'>LCD</b>电容<b class='flag-5'>触摸</b>屏模块(RGB接口)<b class='flag-5'>驱动</b>时序设计

    如何将LCD显示器连接到电路板配置驱动程序以使用示例Qt示例对其进行测试?

    。 我们找到了所用 LCD 控制器的 linux 驱动程序。 https://github.com/sirinsoftware/lcd-drivers/blob/master/ssd1963.c 但是,我们如何将
    发表于 05-06 06:34