STM32迪文屏图标控件保姆级教程

要主图的去末尾,末尾福利图在等着你~~~

文章目录

前言

开发环境

二、使用步骤

1.添加图标控件

2.设置图标属性

3.图标库ICL文件生成

4.单片机程序编写

容易踩得坑


一、前言

本篇文章主要介绍了在DGBUS平台上使用图标变量的步骤。首先需要在DGBUS中添加一个图标变量控件,并设置图标的属性,包括大小和图标文件的引用。然后生成图标库ICL文件,选择要生成的图标文件并命名ICL文件,将生成的ICL文件引用到图标变量属性中。最后,在单片机程序中编写显示图标的函数,并在主循环中调用该函数即可实现图标的切换显示。文章还提到了一些容易踩到的坑,建议参考者注意避免。


开发环境

迪文屏型号DMG80480T070_09WTC
DGUS版本DGUS_V7646
单片机        GD32F407

一、迪文屏图标变量是什么?

在屏幕上指定区域生成一个控件,可以由程序控制切换显示不同的图标。

二、使用步骤

1.添加图标控件

先在DGBUS中拖拽添加一个图标变量到页面。

2.设置图标属性

右侧属性框可以设置图标的大小,这个大小需要和咱原来的图标文件的像素大小一致,否则会出错,不能像QT那样指定显示区域大小后自动压缩放大显示。

 图标文件引用的是ICL格式的,关于ICL文件的生成方式和页面背景底图的生成方式一样,这里我不厌其烦~  哈哈哈   再稍微重复一下。放在末尾那一章节了。

3.图标库ICL文件生成

背景底图和图标ICL文件生成方式:

第一步,把冰箱门打卡~

 下面蹦出来这个界面,这里面大部分都是默认就可以,注意你屏幕的内核类型

注意支持的文件类型:

支持文件类型:ICO,JPG,BMP,GIF,PNG
图片数量:不能超过64K张图片

 全选你要生成的图标文件,所有被选中的图标文件会生成一个.icl图标库文件

注意文件名越简单越好,做好就是数字名,不然容易报错。

 然后点击生成,

 然后跳出来的界面输入文件名,后缀要默认为icl,  命名像我这样,  50_ICON.icl 

50这个数字ID是可以自定义的,但是不要和背景图库,字库还有迪文屏系统默认的文件重复,规则如下,还要考虑生成的大小是否超限。

数字ID范围0-63  其中0-14  22 这几个系统使用了,其他的自己分配,每个ID号是256KB,根据文件的大小确定要占用多少个ID号,例如32.ICL是460KB,那就要占用32  33   2个ID号,下一个文件命名从34开始。

好,接下来再回到,图标变量属性配置,这个步骤。

选中我们刚才生成的用来引用的图标库文件。

图标的上限和下限对应生成的ICL图标库中文件的编号

例如,我刚才生成的,4和5图标。   我这个案例中的应用,就是让这个图标显示  开或者关两个图标,并且能来回切换。

那么图标下限就是4  上限就是5

 然后点击上限、下限旁边的  小加号

 选中上限和下限对应的图标,点击确认。

 可以看到DGUS界面上的预览效果已经出来了

这就整好了   然后三连~~

 下载到SD卡里,升级看看效果。

4.单片机程序编写

/*****************************************************************************************************
函数名称: DisplayIcon(T5L_ADDR+u16 addr,char *data,uint16_t len)
参    数: addr 地址;data要显示的图标编号
作    用: 
******************************************************************************************************/
void DisplayVarIcon(uint16_t addr,uint16_t icon_index)
{DiwenSendBuf[0]=DIWEN_HEAD_0;DiwenSendBuf[1]=DIWEN_HEAD_1;DiwenSendBuf[3]=0x82;DiwenSendBuf[4]=(addr>>8)&0xff;DiwenSendBuf[5]=addr&0xff;DiwenSendBuf[6]=(icon_index>>8)&0xff;DiwenSendBuf[7]=icon_index&0xff;DiwenSendBuf[2]=5;DIWEN_FOR_putn((uint8_t *)DiwenSendBuf,DiwenSendBuf[2]+3);			 
//    HAL_UART_Transmit(&huart5,(uint8_t *)DiwenSendBuf,DiwenSendBuf[2]+3,0xFF);}
// ICON_GUN01_ADDR   控件的地址   // ICON_INDEX_NEED_CARD   要显示的图标编号,比如说 咱的例子里面的  4 或者  5 // 主循环里  当检测到某个KEY触发后,调用下面的函数即可实现切换图标。
DisplayVarIcon(ICON_GUN01_ADDR,ICON_INDEX_NEED_CARD);  

 老规矩,文末来个福利图养养眼,放松一下  ~~

 


三、容易踩得坑

1.要先生成图标库

2.生成图标库命令注意生成的文件大小,命名的ID号要注意不能和系统或自定义的其他库地址重复。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新50万字312道Java经典面试题52道场景题总结(附答案PDF)

最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题;花了3个月的时间将市面上所有的面试题整理总结成了一份50万字的300道Java高频面…

2、快速搞定Kafka术语

快速搞定Kafka术语 Kafka 服务端3层消息架构 Kafka 客户端Broker 如何持久化数据小结 Kafka 服务端 3层消息架构 第 1 层是主题层,每个主题可以配置 M 个分区,而每个分区又可以配置 N 个副本。第 2 层是分区层,每个分区的 N 个副本中只能有…

【Spark精讲】Spark存储原理

目录 类比HDFS的存储架构 Spark的存储架构 存储级别 RDD的持久化机制 RDD缓存的过程 Block淘汰和落盘 类比HDFS的存储架构 HDFS集群有两类节点以管理节点-工作节点模式运行,即一个NameNode(管理节点)和多个DataNode(工作节点)。 Namenode管理文件系统的命名空…

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装 Winodws环境下载与安装PostgreSQL下载PostgreSQL安装PostgreSQL1.登录数据库2.查看下我们已有的数据库 Liunx环境下载与安装PostgreSQL使用YUM下载安装PostgreSQL1.下载PostgreSQL安装包2.安装PostgreS…

spring boot 配置多数据源 踩坑 BindingException: Invalid bound statement (not found)

在上一篇:《【已解决】Spring Boot多数据源的时候,mybatis报错提示:Invalid bound statement (not found)》 凯哥(凯哥Java) 已经接受了,在Spring Boot配置多数据源时候,因为自己马虎,导致的一个坑。下面&a…

C# 提取PDF中指定文本、图片的坐标

获取PDF文件中文字或图片的坐标可以实现精确定位,这对于快速提取指定区域的元素,以及在PDF中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产PDF库通过C# 提取PDF中指定文本或图片的坐标位置(X, Y轴)。 ✍ 用于…

OSG中几何体的绘制(一)

本章主要介绍一些几何体的绘制方法。绘制几何体在场景中是非常常见的,也是最基本的。在很多应用程序中可以看到相当复杂的场景,但不管场景有多复杂,它们都是由少数几个基本的图形元素构建而成的。只要想想达芬奇那些伟大的作品也是由铅笔和画…

驾龄不足三年如何注册网约车?刘师傅的反击之途!

刘师傅是个勤奋的司机。他想注册成为一名网约车司机,但由于驾龄不够三年,他一直被平台回绝。在多次尝试注册失败后,刘师傅慢慢四处求助。他咨询了多个渠道,但都没有得到有效的解决方案。当他在准备放弃的时候,他得知了…

Redis设计与实现之字符串哈希表列表

目录 一、字符串 1、字符串编码 2、编码的选择 二、哈希表 1、字典编码的哈希表 2、压缩列表编码的哈希表 3、编码的选择 4、哈希命令的实现 三、列表 1、 编码的选择 2、 列表命令的实现 3、阻塞的条件 4、 阻塞 5、 阻塞因 LPUSH 、RPUSH 、LINSERT 等添加命令而…

CSRF(跨站脚本请求)

一、漏洞原理 CSRF(Cross-Site Request Forgery)是一种网络安全攻击,攻击者通过欺骗用户在不知情的情况下发送请求,从而实现对目标网站的操作。 网站管理员(已经登录网站后台)——黑客构造的恶意服务器(是网站的创建用户请求)——…

Modbus转Profinet网关使用方法

Modbus转Profinet网关(XD-MDPN100/200)是用于将Modbus协议和Profinet协议进行转换并进行通迅的设备。Modbus转Profinet网关(XD-MDPN100/200)无论是新项目还是改造项目都可轻松配置完成通迅互联。 正确的安装和配置对于确保设备的正…

mysql的redolog、undo、binlog的作用

概览: MySQL三大日志包括:undolog,redo log,binlog,它们分别有以下作用: undolog:是Innodb存储引擎事务生成的日志。用于事务的回滚和MVCC,保证了事务的原子性。 redo log&#x…

智能优化算法应用:基于供需算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于供需算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于供需算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.供需算法4.实验参数设定5.算法结果6.参考文献7.MA…

KaiwuDB × 国网山东综能 | 分布式储能云边端一体化项目建设

项目背景 济南韩家峪村首个高光伏渗透率台区示范项目因其所处地理位置拥有丰富的光照资源,该区域住户 80% 以上的屋顶都安装了光伏板。仅 2022 年全年,光伏发电总量达到了百万千瓦时。 大量分布式光伏并网,在输出清洁电力的同时&#xff0c…

Leetcode的AC指南 —— 链表:19.删除链表的倒数第N个节点

摘要: Leetcode的AC指南 —— 链表:19.删除链表的倒数第N个节点。题目介绍:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 文章目录 一、题目二、解析1、滑动窗口/快慢指针(傻傻分不清&…

中文编程工具下载,编程工具构件之复选框构件

一、前言 零基础自学编程,中文编程工具下载,中文编程工具构件之扩展系统菜单构件教程 编程系统化教程链接https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 给大家分享一款中文编程工具,零基础轻松学编程&a…

NNDL 循环神经网络-梯度爆炸实验 [HBU]

目录 6.2.1 梯度打印函数 6.2.2 复现梯度爆炸现象 6.2.3 使用梯度截断解决梯度爆炸问题 【思考题】梯度截断解决梯度爆炸问题的原理是什么? 总结 前言: 造成简单循环网络较难建模长程依赖问题的原因有两个:梯度爆炸和梯度消失。 循环…

网络基础(八):路由器的基本原理及配置

目录 1、路由概述 2、路由器 2.1路由器的工作原理 2.2路由器的转发原理 3、路由表 3.1路由表的概述 3.2路由表的形成 4、静态路由配置过程(使用eNSP软件配置) 4.1两个静态路由器配置过程 4.2三个静态路由器配置过程 5、默认路由配置过程 5.…

边缘计算系统设计与实践

随着科技的飞速发展,物联网和人工智能两大领域的不断突破,我们看到了一种新型的计算模型——边缘计算的崛起。这种计算模型在处理大规模数据、实现实时响应和降低延迟需求方面,展现出了巨大的潜力。本文将深入探讨边缘计算系统的设计原理和实…

黑马头条--day01.环境搭建

目录 一.前言 二.环境搭建 1.数据库 2.虚拟机搭建 3.1docker更换源 3.docker安装nacos 4.初始化工程 三.全局异常处理 四.登录加密 五.nacos公共配置数据源和mybatis-plus 六.user模块创建 1.配置文件bootstrap.yml 2.日志文件配置logback.xml 3.登录接口 七.统一结果处…