首页 > 其他分享 >初出茅庐的小李博客之串口屏开发一个音乐控制器UI

初出茅庐的小李博客之串口屏开发一个音乐控制器UI

时间:2024-03-16 16:31:56浏览次数:27  
标签:TX 0x00 uint8 ret 初出茅庐 UI 串口 Buff

串口屏介绍

串口屏通常指的是一种带有串口接口的显示屏,可以通过串口与其他设备进行通信和控制。这种屏幕通常具有独立的控制器和显示功能,可以直接接入主控系统,实现信息的显示和交互。

在这里插入图片描述

开发步骤

  1. 准备UI素材
    准备了100张音量的图标,这里面还遇到了个小问题,这么多图片如何批量改名字是个头疼的事情,这里要感谢给我批量改名的神器
    在这里插入图片描述
  2. 利用官方的工具创建工程

在这里插入图片描述https://developer.flythings.cn/zh-hans/docs_brief.html在这里插入图片描述
3. 烧录到串口屏中
4. 编写调用程序
程序非常简单、简单的串口协议
在这里插入图片描述
指令有很多 我仅需要全屏贴图指令 所以只写了这个程序
在这里插入图片描述

简单协议代码具体如下

#include <stdio.h>
#include <stdint.h>
//TX_Buff[0] 帧头 
//TX_Buff[1] 帧头
//TX_Buff[2] 长度【CMD+DATA】 
//TX_Buff[3] CMD   0x10
//TX_Buff[4] DATA0 0x00
//TX_Buff[5] DATA1 0x00
//TX_Buff[6] 校验 【CMD+DATA】&【0xFF】 
uint8_t TX_Buff[7]={0xFF,0xAA,0x03,0x10,0x00,0x00,0x00};
uint8_t TX_CheckSum(uint8_t *Buf, uint8_t len) //buf为数组,len为数组长度
{ 
    uint8_t index = 0;
    uint8_t ret = 0;

    for (index = 0; index  < len; index++)
    {
        ret += *(Buf++);
    }
	ret = ret&0xFF;
	
    return ret;
}

int main(void)
{
	int i;
	int j;
	for(i = 0;i<100;i++)
	{
		TX_Buff[5] = i;
		TX_Buff[6]=TX_CheckSum(&TX_Buff[3],TX_Buff[2]);
		for(j = 0;j<7;j++)
		{
			printf("%02X ",TX_Buff[j]);
		}
		printf("\r\n");
	}
}

在单片机上移植

就是把组好的数据通过串口发给屏幕、注意限幅,总共就一百张照片 不能调用没有的图片


void UI_Show(uint8_t uid)
{
	uint16_t j;
	TX_Buff[5] = uid;
	TX_Buff[6]=TX_CheckSum(&TX_Buff[3],TX_Buff[2]);
	for(j = 0;j<7;j++)
	{
		HAL_UART_Transmit (&huart1 ,(uint8_t *)&TX_Buff[j],1,HAL_MAX_DELAY );
	}
}

在这里插入图片描述

串口屏的应用场景总结:

嵌入式系统人机界面:用作嵌入式系统的人机界面(HMI),显示系统状态、参数调节等信息。
工业控制:作为工业控制设备的显示器,显示设备运行状态、报警信息等。
智能家居:用于智能家居系统的显示控制,如显示温度、湿度等环境信息。
广告机:作为广告机的显示屏,显示广告内容和交互式操作。
医疗设备:用作医疗设备的显示器,显示患者信息、医疗数据等。

结语

串口屏由于具有简单、灵活、易于控制等特点,为设备的信息显示和交互提供了便利。

效果

B站视频

标签:TX,0x00,uint8,ret,初出茅庐,UI,串口,Buff
From: https://blog.csdn.net/weixin_43176183/article/details/136757864

相关文章