TouchGFX开发(2)----触摸屏幕组件点亮LED

news2024/7/4 5:12:21

TouchGFX开发.1----安装软件

  • 概述
  • 创建 TouchGFX 项目
  • 添加图片组件
  • 添加按钮
  • interactions 设置
  • 生成代码
  • 打开文件
  • 配置LED
  • 触摸点亮LED
  • 演示效果

概述

了解如何使用 TouchGFX 配置屏幕,添加触摸按钮,并通过按钮控制板载 LED 的状态。

创建 TouchGFX 项目

打开 TouchGFX Designer,点击Create New创建一个新项目。

在这里插入图片描述

选择合适的硬件开发板和屏幕分辨率以及创建工程。
在这里插入图片描述
这个时候我们就新建好了我们的工程。
在这里插入图片描述

添加图片组件

在使用TouchGFX开发嵌入式用户界面时,添加图片组件是一个常见的需求。
点击中间的图片按钮,添加图片组件。
在这里插入图片描述
选择Image选项,可以导入或者选择已有的图片,选择stock可以选择默认的一些图片,注意屏幕分辨率。
在这里插入图片描述

选择完毕之后,在TouchGFX界面会显示该图片的样式。
在这里插入图片描述

添加按钮

借助Toggle Button组件,我们可以轻松地为界面添加功能强大且外观精美的开关组件,满足各种交互需求。这一组件的设计充分考虑了易用性与视觉效果,为用户提供了一种简洁且直观的操作方式。
在这里插入图片描述

您可以使用Preset预设选项轻松挑选出适合的按钮样式。这些预设包含了多种精心设计的按钮外观,为您的界面提供了丰富的选择与个性化展现。
在这里插入图片描述

interactions 设置

interactions 是指组件与用户之间的交互。这些交互通常包括触摸输入、手势识别以及处理这些输入的回调函数。
对于按键的交互,可以按照下面图片进行配置。
在这里插入图片描述

生成代码

在配置完成之后,我们可以按照下图所示点击相应按钮来生成代码。
在这里插入图片描述

打开文件

在代码生成完毕后,我们可以点击 Files 以打开文件。
在这里插入图片描述
打开文件之后,可以打开对应的STM32CUBEIDE工程。
在这里插入图片描述

配置LED

查看原理图可以得知用户的LD2和LD3对应PG2和PG11管脚。
在这里插入图片描述
在这里插入图片描述
查看对应的STM32CUBEMX文件也可以得知,对LED管脚进行了定义。

在这里插入图片描述

触摸点亮LED

打开文件Application->User->Screen1ViewBase.cpp
可以看到,当 toggleButton1 被点击时,调用虚拟函数。
在这里插入图片描述
在Screen1View.hpp中的Screen1View 类中声明这个虚拟函数ToggleLED()。

virtual void ToggleLED();

在这里插入图片描述
在Screen1View.cpp中添加按键点亮LED的代码。

#include "stm32h7xx_hal.h"

void Screen1View::ToggleLED()
{
	if(toggleButton1.getState())
	{
		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_2, GPIO_PIN_SET);//LD2蓝灯亮
		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_11, GPIO_PIN_RESET);//LD3红灯灭
	}
	else
	{
		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_2, GPIO_PIN_RESET);//LD2蓝灯灭
		HAL_GPIO_WritePin(GPIOG, GPIO_PIN_11, GPIO_PIN_SET);//LD3红灯亮
	}
}

在这里插入图片描述

演示效果

屏幕按键为OFF时候,LED为红灯。
在这里插入图片描述

屏幕按键为ON时候,LED为蓝灯。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解map、set、multimap、multiset的使用

✍作者:阿润菜菜 📖专栏:C 目录 前言set、multiset的使用1. set2. multiset3. 什么时候应该使用multiset而不是set map、multimap的使用1.map2.multimap3.什么时候应该使用multimap而不是map 前言 map、set、multimap、multiset是C STL中的四…

如何把握未来增长话语权,全链路数字化运营有解

近年来,良品铺子、元气森林、蔚来等迅速成为市场中现象级的品牌,它们往往在很短时间内就发展成市场的生力军和消费者青睐的对象。 仔细研究背后,这些新生品牌的崛起,核心商业逻辑跟以往品牌大为不同,明显更“懂”新生…

基于微信小程序的酒店预定管理系统设计与实现

第1章 绪论 1 1.1开发背景与意义 1 1.2开发方法 1 1.3论文结构 1 2系统开发技术与环境 3 2.1 系统开发语言 3 2.2 系统开发工具 3 2.3 系统页面技术 3 2.4 系统数据库的选择 4 2.5 系统的运行环境 4 2.5.1 硬件环境 4 2.5.2 软件环境 4 3系统分析 5 3.1可行性分析 5 3.1.1 经济…

Java——和为S的连续正数序列

题目链接 牛客网在线oj题——和为S的连续正数序列 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为…

用Jmeter进行接口自动化测试的工作流程你知道吗?

目录 测试流程 接口测试相关文档管理规范 接口测试要点 测试流程 在测试负责人接受到测试任务后,应该按照以下流程规范完成测试工作。 2.1 测试需求分析 产品开发负责人在完成某产品功能的接口文档编写后,在核对无误后下发给对应的接口测试负责人…

word@论文后期优化和完善工作@页眉页脚页码@配置并导出pdf

文章目录 论文结构例 目录操作页眉页脚页眉样式检查所有页面的页眉添加横线 页码从第二页(封面后的一页)开始用罗马数字标页码 word导出pdf等其他格式额外配置带独立书签和目录打印pdf 最后的优化 论文结构 一篇规范的论文应该大致包括以下部分: 标题页&#xff1…

JavaScript全解析——canvas 入门(下)

canvas 线段两端的样式 ●canvas 中, 是可以设置线段两端的样子的 ●我们先来画三个平行线 // 0. 获取到页面上的 canvas 标签元素节点 const canvasEle document.querySelector(#canvas)// 1. 获取当前这个画布的工具箱 const ctx canvasEle.getContext(2d)// 2. 开始绘制第…

webpack 5 实战(2)

二十一、babel-loader 使用 使用babel-loader对js文件进行处理,在lg.Webpack.js配置文件中配置js文件规则。 使用单独的插件进行转换 使用预设进行转换 使用babel.config.js配置文件进行babel配置 const path require(path) const CopyWebpackPlugin require(…

day12 IP协议与ethernet协议

目录 IP包头 IP网的意义 IP数据报的格式 IP数据报分片 以太网包头(链路层协议) IP包头 IP网的意义 当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互联的各具体的网络异构细节; 如果在这种覆盖…

RabbitMQ 死信队列实现

// consumer处理成功后,通知broker删除队列中的消息,如果设置multipletrue,表示支持批量确认机制以减少网络流量 channel.basicAck(deliveryTag, multiple);// 拒绝deliveryTag对应的消息,第二个参数是否requeue,true则…

Inception模型实现孤立手语词的识别

实现孤立手语词的识别流程如下,在实际研究中,本章将着重研究第三阶段内容,也就是模型的设计与实现过程,目的是提高手语图像的识别准确率。 Inception模型实现 Inception模型是谷歌研究人员在2014年提出的一个深度卷…

网工Python:如何使用Netmiko的SCP函数进行文件传输?

在网络设备管理中,传输配置文件、镜像文件等是经常需要进行的操作。Netmiko是一个Python库,可用于与各种网络设备进行交互,提供了一些用于传输文件的函数,其中包括SCP(Secure Copy Protocol)函数。本文将介…

【软考备战·希赛网每日一练】2023年5月4日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题三、知识查缺 题目及解析来源:2023年05月04日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 修改Linux文件权限命令:chmod。 第二题 解析: 第三题 解析…

欧拉奔赴品牌2.0时代,女性汽车真实用户需求被定义?

每年的上海国际汽车工业展览会,不仅是各大汽车品牌的技术“秀场”,也是品牌的营销“修罗场”。今年上海车展出圈的营销事件特别多,热度甚至一再蔓延到汽车行业外,其中欧拉也贡献了不少流量。 据了解,在2023上海车展欧…

mount disk space from SAN

mount disk from FC-SAN 配置硬盘域、存储池、LUN、主机及LUN与与主机之间的映射。 fc-san多路径范例1 fc-san多路径2 mount disk from iSCSI [rootqionghai11g ~]# iscsiadm -m discovery -t sendtargets -p 192.16.10.188:3260 Starting iscsid: [ OK ] 192.16.10.188:32…

Yolov1 源码讲解 voc.py

先看结构 1.mean_rgb是voc2007专用的均值 voc2007分别是这样的 坐标格式(X0,Y0,X1,Y1)其中X0,Y0是左上角的坐标,X1,Y1是右下角的坐标。 coco,voc ,yolo数据集中的bbox的坐标格式_coco bbox格式_十二耳环的博客-CSDN…

Jmeter之BeanShell取出需要参数,传递给下个请求

一、事件背景: 上周同事用Jmeter录制脚本,录制成功回放后,并没有达到自己想要的结果。 他的真实需求是,想从数据库取出某个字段值,然后对数据库做操作。 也就是想实现做参数传递的效果,我心痒痒的&#…

ConcurrentHashMap底层源码解析

ConcurrentHashMap线程安全,底层数组链表红黑树。 思想,分而治之。 JDK7有Segment对象,分段锁 JDK8没有了这个对象 总结, 首先计算hash, 如果集合没有元素,开始initTable方法初始化,这里扩容讲…

有人说ChatGPT信息不新?

Hello ,我是小索奇,今天给大家分享一个插件,这个插件可以通过抓取网页获得最新内容,它可以有效的避免ChatGPT信息过时,获取不到最新的信息等等 演示-这里问它一些问题: 现在几点了呀 可以看到时间也是很准确的&#x…

Linux权限(+Linux基本指令(下))

目录 一.基本指令补充 1.date指令 2.find指令 3.tar指令 4.Linux下的常用热键 二.Linux权限 1.Shell 2.Linux权限的概念 一.基本指令补充 1.date指令 😆date指令可以用于显示日期和时间戳😆Linux的时间戳与Unix时间戳一致,指的是从1970年1月1日…