资料下载
视频
屏幕程序创建
创建
主界面设置
实现按钮和文本的添加,实现画面的切换
下面注释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);
}