当前位置: 首页 > news >正文

大彩 串口屏

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

视频
在这里插入图片描述

屏幕程序创建

创建

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

主界面设置

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

在这里插入图片描述
下面注释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 FFGUI_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.lryc.cn/news/9522.html

相关文章:

  • 安装 cplex 求解器
  • DPR-34 AC22V【双位置继电器】
  • Ubuntu16.04搭建Fabric1.4环境
  • 【JavaScript】深度剖析prototype与__proto__到底是什么以及他们的关系
  • css选择器
  • MyBatis详解2——增删改查操作
  • 最大连续子列和
  • 线性基 学习笔记
  • 算法-回溯算法-组合问题
  • ABAP中的Null值与space 以及 BW中ADSO的Key值
  • JavaScript库之Lodash常用方法
  • Kotlin新手教程二(Kotlin基本数据类型及基础语法)
  • git idea创建新分支,获取/合并主支代码的2个方法
  • CF1714A Everyone Loves to Sleep 题解
  • oracle官方下载历史版本JDK版本
  • 双击-jar包无法运行解决方法
  • 程序员的自我修养第七章——动态链接 (下)
  • 蓝桥杯刷题——基础篇(二)
  • PTA L1-049 天梯赛座位分配(详解)
  • Linux部分参数作用讲解
  • Java kafka
  • DBA之路---Stream数据共享同步机制与配置方法
  • CF1790E Vlad and a Pair of Numbers 题解
  • 漏洞预警|Apache Kafka Connect JNDI注入漏洞
  • 企业小程序开发步骤【教你创建小程序】
  • 刚性电路板的特点及与柔性电路板的区别
  • 扫码过磅+车牌识别,内蒙古蒙维过磅实现信息化管理
  • 蒙特卡洛计算圆周率
  • 生物信息场景下的用户需求
  • linux su(switch user)和sudo(superuser do)的区别?(sudo su与su的区别)