TouchGFX指南(2)

STM32 TouchGFX【六】显示时间 TouchGFX 显示当前时间 阅读详情
AI摘要

本文介绍了如何在基于TOUCHGFX的项目中添加触摸功能,包括驱动触摸IC、使用CUBEMX配置I2C以及在外部QSPIFLASHW25Q128存储资源。还涉及了内存映射的使用和资源下载的调试问题解决。

前言

在上一篇的文章里面,我们已经实现了基本屏幕显示,可以使用TOUCHGFX来显示基本的色块了,在本篇我们将在之前的基础上,完善我们的功能:

1.增加触摸的功能

2.将资源保存在外部的存储介质QSPI FLASH W25Q128

3.制作模板

添加触摸功能

1.驱动触摸

触摸的驱动这里就不做过多的介绍了,每个人使用的触摸IC各不相同,但是不论使用的是那种IC,最终要实现的功能是一样的。

NS2009原理图
CUBEMX配置I2C

 这样配置就好了,是否开中断,是否需要上拉电阻,视自己情况而定。

你需要将获取触摸位置封装成这样的一个函数:

uint8_t bsp_ns2009_getXY(uint16_t *x,uint16_t *y)
{
  unsigned int z=0;
	z = bsp_ns2009_getPress();
	if ((z > 70) && (z < 2000))
	{
		*x = ns2009_read(NS2009_LOW_POWER_READ_X)* SCREEN_X_PIXEL / 4096;        //4096 = 2 ^ 12;
		*y = ns2009_read(NS2009_LOW_POWER_READ_Y)* SCREEN_Y_PIXEL / 4096;
		return 0;
	}
	else
	{
		 return 1;
	}
}

使用指针作为参数,同时需要返回是否有被按下。

2.TOUCHGFX添加触摸的功能

添加获取触摸位置的方法

添加获取触摸的方法

同时不要忘了添加触摸的初始化,

初始化触摸芯片

3.测试触摸功能

双击打开这个文件,编辑我们的测试UI,

这是我们之前的UI界面,我们稍作改动,

在白底的BOX上绘制了一个绿色的BOX,同时设置绿色的BOX为可以拖动的,

接下来生成代码测试下吧,

到这步的代码已经放入了代码仓库,方便查阅代码发行版icon-default.png?t=N7T8https://gitee.com/lei_kkaaa/touch-gfx-guidelines/releases/tag/v2.0

 将资源保存在外部存储介质

1.外部存储介质的选择简介

理论上将资源保存任何的介质都是可以的,你可以保存在TF卡内,你也可以保存在外部的FLASH内,但是有一点你需要注意,使用非储存映射的介质的话,在使用上会有所限制。

本篇还是使用QSPI FLASH来存储,这样可以开启地址映射。配置简单,开始映射模式的话,后面就不需要去写接口什么的了,使用非常方便。

2.使用 QUAD SPI FLASH

驱动编写

网上的资源非常得多,自行百度。

编写链接文件

链接文件就是在编译的时候将各个数据分配到哪个地址的过程,分配到哪里就是由这个文件决定的。

点击编辑,然后复制里面的内容,复制到新建的自己的文件,

自己新建的文件里面新添加一个段,然后保存,

 选择你新建的文件,

验证是否成功

目录下的这个文件,添加一个按键即可,因为按键的图片默认是链接到外部的FALSH的,

这里删除了之前的绿色BOX,仅仅保留了白色的背景,添加了一个小的按键,生成代码,再到keil编译。因为按键弹起和按键被按下的两个状态是显示的两张图片,图片默认是存储在外部的,

双击工程名字打开map文件,如果没有的话。

 可以看到图片已经被链接到0x90000000的地址,也就是外部FLASH的地址了,下一步就是将数据下载到外部的FLASH了。

将资源下载到外部

我们先新建一个target用来下载外部资源,在此之前,你需要已经编写好了外部的下载算法,

切换到新建的target, 去掉所有的文件,不是删除也不是remove,

然后添加算法文件,先去除原来的,然后添加,

 如果下载的时候出现这个错误的话,需要适当改大RAM的小,

还有就是不要验证,不然也会有错误,这个一般是验证代码写的有问题

这样修改以后就下载正常了,

发行版代码icon-default.png?t=N7T8https://gitee.com/lei_kkaaa/touch-gfx-guidelines/releases/tag/v3.1

你可能遇到的问题:

虽然可以正常下载,但是显示的内容却有问题,

第一步我们先读出FALSH部分数据,与应该写入的数据进行比对。使用keil的调试功能可以看到那一部分的内容是没有写入的。因此是下载算法有问题导致的,查看你的下载算法有没有选对。

注意:

同时添加两个下载算法是有问题的,因此我们使用两个下载target来下载,

注意:

如果你使用的不是内存映射的存储介质,倘若你设置了按键是可以拖动的,但是你将无法拖动它,只有内存映射的可以。

TouchGFX使用教程 TouchGFX使用教程(一)前言TouchGFX背景TouchGFX工程的结构合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 大家好,本人最近在做项目开发,项目中使用TouchGFX工具进行开发界面,同时使用stm32系列的芯片操作 阅读详情

相关推荐

TouchGFX学习笔记2:SPI接口屏幕移植

打开工程目录,找到如图的文件并打开,选择一个合适的模板,这里我选择空的模板,在页面中添加一张Image,用于验证TouchGFX移植是否成功,点击F4生成代码,再打开keil工程进行编译。首先指定在rect中绘制代码,在LCD上开启一个窗口,然后将数据逐一写入即可,注意位选和数据端口使能,这里就完成了TouchGFX图像绘制的功能。然后按照下图进行配置,先开启CRC(touchgfx运行需要),再根据自己的需求进行配置,因为用的是SPI接口的屏幕,接口需要自定义,分辨率240*240,单缓冲,无操作系统。

qq_46038320的博客 3786

TouchGFX介绍

目录 一、关于TouchGFX 1、TouchGFX是一个图形框架 2、TouchGFX可以减轻CPU负载 3、TouchGFX充分利用了STM32的硬件图形外设 4、TouchGFX创建最佳性能的用户界面 5、TouchGFX可工作于STM32支持的LCD接口 二、TouchGFX框架 1、软件层次 2、TouchGFX工具 3、TouchGFX Designer 4、MVP设计模式 5、TouchGFX 与C/C++ 6、TouchGFX 与RTOS 三、STM32CubeM

hurryddd 1万+

TouchGFX - 2 - Screen

文章目录TouchGFX 2 Screen创建生成代码启动流程事件处理TickEventClickEventGestureEventKeyEventDragEvent界面转跳 TouchGFX 2 Screen Screen 是TouchGFX的基础容器,界面资源管理的主要单元。 Screen是显示时才会实例化,因此,不同Screen直接是不能互相访问的。 Screen可以通过FrontendApplication实例来相互转跳。 创建 新建项目会自动创建一个默认screen,也可以通过箭头所指按钮

天牛虫 1181

TouchGFX超低配置移植教程

以官方NUCLEO-G070RB+X-NUCLEO-GFX01M2的配置在自己的板子上运行TouchGFX

qq_45844424的博客 6944

TouchGFX使用心得(2)—Touchgfx 代码组织结构

前言 本人大三的时候,有幸跟着师兄做开发,接触到了这个TouchGFX界面开发,之前一直学习和实习,比较忙,现在暑假有空了,写写这段时间的一些使用心得,希望对大家有一点帮助。 Touchgfx代码组织结构 1 简单介绍一下 Touchgfx 生成的代码结构 TouchGFX Designer 生成的代码结构分为三层: 通过这样的分层组织方法, 框架系统、 系统生成的代码和用户编写的代码实现了解耦,大大降低了代码耦合度,提高了可读性。 2 TouchGFX生成的文件 编程的时候,可以在 TouchGFX

chosenOne2的博客 1342

(2)touchgfx的轮播效果

轮播 “旋转木马”效果 Carousel 小部件的目的是提供一个漂亮的轮播功能,不使用大量的MCU资源。 Carousel 小部件例程中为5个可见元素。但是,如果需要,可改变。 请注意,Carousel小部件使用ExtendedZoomAnimationImage.hpp。此小部件也可以在TouchGFX Open Widget Repository中找到。此文件包含在Carousel.hpp文件...

ZenNaiHeQiao的专栏 3136

touchgfx程序_2.TouchGFX界面应用之Hello world

打开TouchGFX 4.10.0 Designer先选择开发板或者屏幕,移动鼠标到Simulator,会出现一个 CHANGE 按钮:打开如下图,如果你是ST官方板,那么你可以直接选择对应的开发板,如果你不是那选择对应分辨率的屏幕,我选择的是1024X600的屏幕。你可以选择一些UI,这些UI都带着一些有意思的图片和一些有意思的小东西,但是选择一些UI就意味着可能内存不够,我这里不选择,使用白板...

weixin_30284477的博客 325

TouchGFX移植(2)STM32CubeMX配置

1,配置参数,只需要修改栈空间大小为32768 其他的不用更改。注意LTDC的像素时钟,要和具体的液晶屏匹配,这里是42MHZ.这里涉及到SDRAM的上电初始化文件:(后面会具体用到)原理图中的BA0和BA1决定了配置中有4个BANK。屏:7寸RGB, 1024 X 600分辨率。4,GPIO设置(必须和硬件连接一致)想用TouchGFX 必须使能CRC.硬件平台:STM32F429IGT6。打开LTDC全局中断。

wgf350357114的博客 1451

touchGFX实体按键(2)

(1)打开TouchGFX 4.23.0 Designer软件,在touchgfx界面中增加控件numTextArea,用于在屏幕上显示按键时变量的增加和减少。(2)在“interactions”中增加两个交互,(3)在view中编辑长按和连按功能。

wgf350357114的博客 909

TouchGFX 实现图片资源存储在外部flash中(2)

烧录的起始地址为0x08000000,这个地址是存放代码的,而0x90000000地址处是存放图片素材的,通过上面那条命令可以把代码和图片素材全部下载完成!5)编译并下载到外部Flash中。6)TouchGFX的相关配置。

wgf350357114的博客 1153

STM32F429IGT6+TouchGFX实战:手把手教你用正点原子阿波罗V2开发板做个IO控制器(附完整代码)

本文详细介绍了如何使用STM32F429IGT6芯片和TouchGFX框架在正点原子阿波罗V2开发板上实现一个IO控制器。从开发环境配置、CubeMX关键设置到TouchGFX界面设计与GPIO控制代码实现,手把手教你完成项目开发,并提供了常见问题排查和功能扩展建议,适合嵌入式开发初学者和进阶者参考。

weixin_42632434的博客 239

【STM32H7S78-DK测评】2、实体按键控制TouchGFX

作用是每次收到ASCII(48),触发increaseProgressValue,从boxProgress1获得当前值,加一后设置给boxProgress1。Choose button key:48 0 //ASCII(48)->'0',输入'0'触发动作。链接:https://bbs.21ic.com/icview-3400702-1-1.html。放置几个部件,其中实体按键将控制boxProgress1的值,模拟一个步进控制。利用开发板上的user button控制TouchGFX的内容。

ic2121的博客 296

如何实现SOLIDWORKS阵列的“智能变更”?

有时,我们在设计一个零件时,零件上有一排阵列孔,同时零件有不同的长度,我们又希望可以做到零件长度改变时,这排孔可以按长度等距增减孔阵列的个数;或是零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那具体要怎么做呢?接下来,我们一起来看看怎么用SOLIDWORKS中简单的操作来实现这两种智能的变更: 零件长度加长或缩短时,这排孔要按长度等距增减孔阵列的个数。 零件长度加长或缩短时,这排孔保持个数不变,按零件长度增减孔距。 那接下来,我们一起来看看怎么用简单的操作来实现这两种智能的

SOLIDWORKS艾金米 2077

TouchGFX 4.21.2 Designer与keil的联合使用【图形化】

【代码】TouchGFX 4.21.2 Designer与keil的联合使用【图形化】

KWTXX的博客 112

【Linux】Petalinux使用QSPI FLASH引导启动

1. 预分配Flash空间使用Flash引导Petalinux做的系统,也有进阶的做法。部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。1. 预分配Flash空间根据生成的bit文件大小估算BOOT.BIN文件的大小,为Flash大概分配四个分区:boot、bootenv、kernel、bootscr,分别存放BOOT.BIN文件、u-boot的环境变量、内核文件(image.ub/zImage/uImage等)、启动脚本boot.scr。

Tesseract_9527的博客 3375

RS-485调试踩坑实录:MAX13487数据回环问题排查与修复(附电路图)

本文深入解析了RS-485通信中MAX13487芯片的数据回环问题,提供了详细的排查过程和解决方案。通过分析芯片特性和自动换向机制,揭示了RO引脚配置不当是导致问题的关键原因,并给出硬件(添加上拉电阻)和软件(调整MCU配置)两种修复方案,附有优化设计建议和实际调试技巧。

play7的博客 1297

基于STM32F429IGT6+正点原子阿波罗V2开发板,依托TouchGFX实现GUI设计,打造一个简单的RTOS系统,并实现多IO高低电平输出

如果您正尝试从无到有进行单片机开发,这篇博客也许很对您的胃口

weixin_46632113的博客 1491

微信支付V2,jsapi支付拉起收银台报错:调用支付JSAPI缺少参数:total_fee

拉起收银台报错

m0_54355172的博客 3873

TouchGFX系列 1.2 TouchGFXDesigner软件界面简析

目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import p

lengyueyan的博客 1095

ICCompiler II学习笔记(一)ICC II使用全流程 overview

学习笔记同步发布在我的个人网站上,欢迎来访查看。 个人学识有限,理解可能有误,仅供参考。 文章目录一、前言二、 ICC II 简介和 GUI2.1 Blocks 和 Design Libraries2.2 Objects2.3 Application Options三、Design Setup四、APR flow五、 课程主题:如何用 ICC II来实现最好的PPA 一、前言 现在的芯片都在追求一个极致的PPA 芯片的生成可以分为以下 5大步骤: Front-end Design:前端设计,最终产生

一名FPGA芯片设计爱好者的技术博客 2万+

IgH EtherCAT 从入门到精通:第 5 章 多主站与系统集成配置

本文介绍了 EtherCAT 多主站配置与系统集成方法。主要内容包括: 多主站实例配置原理:通过内核模块参数指定多个主站设备,每个主站独立管理一条 EtherCAT 总线,最多支持32个主站实例。 配置文件详解:在/etc/ethercat.conf中通过MASTER<X>_DEVICE变量定义各主站绑定的网卡或MAC地址,支持冗余备份配置。 系统服务集成:提供了systemd服务单元文件和传统init.d脚本两种方式实现开机自启动和管理,并建议通过override文件定制服务依赖关系。 架构示

从事嵌入式linux android驱动开发,拥有全栈能力 351

TouchGFX软件介绍 基本控件,交互设计与仿真(2)

• 当Tiled Image控件宽度或高度大于图像时,图像就会在水平和垂直方向进行重复填满控件区域。• X Origo 和Y Origo 的坐标与Texture Mapper的宽度和高度相关。• Repeat Button按下不松开,在延时时间后,会按配置的间隔重复触发回调。支持缩放,旋转.属性: • 旋转角度• 水平,垂直方向缩放 • 添加顶点。• Camera Distance 会改变图像旋转时显示的透视量。属性 • 圆心 • 半径 • 起始角度 • 线宽。

wgf350357114的博客 1543

CVE-2021-3156本地提权漏洞复现

受影响版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 测试 我这里是在本地centos7上进行测试。 需要目标机器上存在python编译器、目标主机出网或者能上传文件到目标主机。 以非root用户登录系统,并运行如下命令: sudoedit -s / 通常响应一个以 sudoedit: / 开头的报错,多半存在漏洞。 利用 提权脚本: https://www.o2oxy.cn/wp-content/uploa

The current road is different, love needs to distinguish between right and wrong 3779

H750_2.zip资源文件介绍:ART-Pi H750开发板TouchGFX移植与外部Flash烧录

H750_2.zip资源文件介绍:ART-Pi H750开发板TouchGFX移植与外部Flash烧录 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在嵌入式开发领域,图形用户界面(GUI)的移植和存储解决方案的烧录是两项关键任务。H750_2.zip资源文件正是针对这些需求而设计,它为开发者在ART-Pi H750开发板上移植TouchGFX(第二部分)提供了dem...

gitblog_06731的博客 586

基于MATLAB的拉盖尔-高斯光束叠加相位模拟

首先,我们需要设置模拟所需的参数,如光腰半径、传播距离、光束的角动量等。其中,(U)表示光束的电场复振幅,(r)和(\phi)分别是极坐标系下的径向和角向坐标,(z)是传播距离,(A)是归一化系数,(w_p)是光束的光腰半径,(L_p^q)是拉盖尔多项式,(k)是波数,(l)是光束的角动量。通过修改模拟参数,如光腰半径、传播距离、角动量等,您可以进一步探索和理解拉盖尔-高斯光束的叠加相位效应。拉盖尔-高斯光束是一种特殊的光束模式,具有广泛的应用领域,包括光学信息处理、激光加工和量子光学等。

m0_47037246的博客 945

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

5.2. TouchGFX 使用C++ 标准模板库(STL)例程

接着使用范围 for 循环遍历 imageIds 容器,对于每个图像 ID,创建一个 touchgfx::Image 类型的图像控件,设置其在屏幕上的位置(根据图像 ID 计算 x 坐标,使其水平排列)、大小以及对应的位图资源(这里通过简单传入图像 ID 来获取位图,实际开发中需根据 TouchGFX 的资源加载和管理机制来准确获取位图),最后将每个图像控件添加到屏幕上,这样就实现了利用 vector 容器来批量管理和展示多个图像资源的功能。示例一:使用 vector 容器存储和显示多个图像资源信息。

wgf350357114的博客 802

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 触摸IC指南
下一篇: TOUCHGFX_H7B0
HelloKQing
博客等级 码龄8年 128粉丝 21原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值