大彩 串口屏

news2024/11/15 12:32:00

资料下载
在这里插入图片描述

视频
在这里插入图片描述

屏幕程序创建

创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主界面设置

实现按钮和文本的添加,实现画面的切换
在这里插入图片描述

在这里插入图片描述
下面注释4有点问题,切换画面还是会下传指令集,只是无法在软件中进行指令集的设置了
在这里插入图片描述
在这里插入图片描述

按钮界面

首先第一步同上添加背景图片,然后添加选中后的图片并点击裁剪。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

文本设置

直接设置成用户主机输入(屏幕上显示的数据来自于用户单片机输入)即可
在这里插入图片描述
在这里插入图片描述

工程下载

M 系列不支持 USB 和串口下载,只支持 SD 卡下载。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功
请添加图片描述

启动好一遍以后就可以将sd卡拿出来了,不然他会每次都从sd卡加载一遍。

指令

在这里插入图片描述
或者通过这样查看
在这里插入图片描述

测试

在这里插入图片描述

波特率 9600
1、复位设备

EE 07 35 5A 53 A5 FF FC FF FF

请添加图片描述
请添加图片描述
2、画面切换

EE B1 00 00 04 FF FC FF FF 

请添加图片描述
4、设置文本

EE B1 10 00 04 00 05 36 FF FC FF FF 

在这里插入图片描述
在这里插入图片描述

虚拟串口调试

使用虚拟串口工具创建串口
在这里插入图片描述
在这里插入图片描述
这样就 可以进行收发了 ,测试过 完全没问题

STM32

移植

需要移植以下文件
在这里插入图片描述

发送文本

其中发送命令只需要修改如下函数,就可以通过直接调用hmi_driver.h中的函数实现文本框文字修改等等操作,当然也可以通过查询命令,直接自己写

#include "hmi_user_uart.h"

/*!
*   \brief  发送1个字节
*   \param  t 发送的字节
*/
void  SendChar(uchar t)
{
	  HAL_UART_Transmit(&huart3, &t,1, 1000);
}

像以下两种方法皆可,一种通过直接调用api(实际也就是给你把命令组合起来发送),一种自己直接发送命令。

uint8_t nbuf[]={	0xEE,0xB1 ,0x00,0x00 ,0x00 ,0xFF ,0xFC,0xFF,0xFF };

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//
    SetTextValue(0,2,(uchar *)"小米");
		HAL_Delay(1000);
		HAL_UART_Transmit(&huart3, nbuf, 9, 1000);

请添加图片描述

写字画图,并设置颜色

在这里插入图片描述
他这里用两个字节表示rgb(应该是3个字节正好对应255 255 255),那么应该用的就是RGB565,一个像素用2个字节表示。画完一个,可以改变另外颜色直接画,从而达到直接切换圆的颜色的效果。

//绿色圆和红色圆之间切换
				if(keyFlag[0]==0)//液体回流检测电路
				{
					keyFlag[0]=1;
				  SetFcolor(0x400);//绿色 EE 41 04 00  FF FC FF FF 
					GUI_CircleFill(730, 320, 10);//EE 53 02 E4 01 40 00 0A FF FC FF FF 
				}
				else
				{
				  keyFlag[0]=0;
					SetFcolor(0xF800);//红色 EE 41 F8 00  FF FC FF FF
					GUI_CircleFill(730, 320, 10);
				}

按钮

在这里插入图片描述

SetButtonValue(0,30,1);//EE B1 10 00 00 00 1E 01 FF FC FF FF

这样就可以切换开关了,切换开关的图片从阿里巴巴矢量图标库来

该API在此.C中在这里插入图片描述

出现的问题

当我们使用如下函数进行改变文本的中文值的时候,我们需要设定keil的编译方法为GB2312,而不能是UTF-8。不然发送出去的字符串是乱码的。

SetTextValue(0,2,(uchar *)"小米");

void SetTextValue(uint16 screen_id,uint16 control_id,uchar *str)
{
    BEGIN_CMD();
    TX_8(0xB1);
    TX_8(0x10);
    TX_16(screen_id);
    TX_16(control_id);
    SendStrings(str);
    END_CMD();
}
//最最后面就是调用这个函数
void  SendChar(uchar t)
{
	  HAL_UART_Transmit(&huart3, &t,1, 1000);
}

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

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

相关文章

性能VS功能,同为测试又有哪些不一样?

我们在求职的时候,发现有的是招聘的功能测试,有的招聘的是性能测试,那么功能测试和性能测试的区别是什么呢? 侧重点不同 功能测试的侧重点是功能是否满足客户需求。 比如说我们拿到一个节假日搞活动的需求,这个需求…

【订阅】订阅MySql集简云连接器同步报销审批数据至MySql数据库

方案场景 企业在实现数字化转型的道路上,因企业多个系统孤立数据割断,数据互通成为企业率先解决的最大问题,依靠钉钉OA审批,企业通过审批后手动录入到企业的自建系统,然后再同步到MySQL数据库,这种方式不仅…

WPF MVVM系统入门-下

WPF MVVM系统入门-下 CommandManager 接上文WPF MVVM系统入门-上,我们想把Command放在ViewModel中,而不是Model中,可以将CommandBase类改为 public class CommandBase : ICommand {public event EventHandler? CanExecuteChanged{add { C…

[Verilog硬件描述语言]程序设计语句

目录一、数据流建模二、行为级建模2.1 应用场景2.2 initial过程语句2.3 always过程语句2.3.1 电平敏感信号:2.3.2 边沿敏感信号:2.3.3 initial和always语句使用注意2.4 例题:用always过程语句描述4选1数据选择器2.5 例题: 用alway…

2023-02-16:干活小计

数学公式表示学习: 大约耗时:2 hours 在做了一些工作后重读论文:MathBERT: A Pre-Trained Model for Mathematical Formula Understanding 这是本篇论文最重要的idea:Current pre-trained models neglect the structural featu…

魔百和M401A刷入Armbian系统EMMC开启wifi

文章目录一、Armbian系统写入U盘二、U盘内uEnv.txt文件修改三、盒子从U盘进行启动四、设置用户名和密码五、Armbian系统写入EMMC六、 重启系统reboot(不可以拔U盘)七、盒子关机拔出U盘八、插入USB无线网卡,连接wifi上次盒子刷了5.15版本的armbian系统,可…

C++ map和set

目录 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 map 3.2.1 map的介绍 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介绍 3.3.2 multiset的使用 3.4 multimap 3.4.1 multimap的介绍 3.5 在OJ中的使用 4.…

Android框架源码分析-浅析OkHttp3

浅析OkHttp3 这篇文章主要用来回顾Okhttp3源码中,同步异步请求的区别、拦截器的责任链模式、连接池管理以及探讨socket通信到底在哪里实现。 列出的代码可能删掉了非核心部分的展示,如果有异议请查看源码 连接池涉及知识:可能根据 IP 地址…

iis7.5应用程序池的启动模式设置

最近发现公司的网站第一次登录时比较慢,甚至有超时的时候,当我检查应用程序池(IIS 7.5)时,应用程序池正常启动,但有时候处于停止状态,停止原因未知。所以必须第一时间重新启动它,以保证网站能被正常访问。于…

kubeadm Dashboard harbor

主机名IP地址安装组件master01192.168.186.10docker、kubeadm、kubelet、kubectl、flannelnode01192.168.186.20docker、kubeadm、kubelet、kubectl、flannelnode02192.168.186.30docker、kubeadm、kubelet、kubectl、flannelharbor192.168.186.40docker、docker-compose、harb…

python语言基础(最详细版)

文章目录一、程序的格式框架缩进1、定义2、这里就简单的举几个例子注释二、语法元素的名称三、数据类型四、数值运算符五、关系运算六、逻辑运算七、运算符的结合性八、字符串一、程序的格式框架 缩进 1、定义 (1)python中通常用缩进来表示代码包含和…

Python迭代器、生成器和装饰器

一、迭代器 1、迭代器简介 迭代操作是访问集合元素的一种方式,是 Python最强大的功能之一。 迭代器是用来迭代取值的工具,是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能…

QT项目_RPC(进程间通讯)

QT项目_RPC(进程间通讯) 前言: 两个进程间通信、或是说两个应用程序之间通讯。实际情况是在QT开发的一个项目中,里面包含两个子程序,子程序有单独的界面和应用逻辑,这两个子程序跑起来之后需要一些数据的交互,例如&…

GEE学习笔记 八十四:【GEE之Python版教程十四】矢量数据(ee.feature)

上一节讲了几何图形Geometry,这一节讲矢量数据(ee.feature),它的构成也就是几何图形以及属性字典。 1、API定义 首先看一下GEE的python版API(Welcome to GEE-Python-API’s documentation! — GEE-Python-API 1.0 do…

【论文】智能隧道检测车的现状及改进策略

本文转载自《智慧城轨》2022年第11期 作者:黄丹樱1,韦强1,朱椰毅2,范骁1,林浩立1 单位:1 浙江师范大学工学院;2 浙江金温铁道开发有限公司 声明:本文仅用于学术分享,不做商业用途,如有侵权,联…

从实现到原理,聊聊Java中的SPI动态扩展

原创:微信公众号 码农参上,欢迎分享,转载请保留出处。 八股文背多了,相信大家都听说过一个词,SPI扩展。 有的面试官就很喜欢问这个问题,SpringBoot的自动装配是如何实现的? 基本上&#xff0c…

Redis第二讲

二、Redis02 2.1 发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 发布订阅的实现 1、打开一个客户端订阅channel1 127.0.0.1:6379> subscribe ch…

红黑树的原理+实现

文章目录红黑树定义性质红黑树的插入动态效果演示代码测试红黑树红黑树 定义 红黑树是一个近似平衡的搜索树,关于近似平衡主要体现在最长路径小于最短路径的两倍(我认为这是红黑树核心原则),为了达到这个原则,红黑树所…

LeetCode刷题--- 面试题 01.07. 旋转矩阵(原地旋转+翻转替旋转)

💌 所属专栏:【LeetCode题解(持续更新中)】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,…

【C++之容器篇】二叉搜索树的理论与使用

目录前言一、二叉搜索树的概念二、二叉搜素树的模拟实现(增删查非递归实现)1. 二叉搜素树的结点2. 二叉搜索树的实现(1). 二叉搜索树的基本结构(2)构造函数(3)查找函数(4…