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

串口屏介绍

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

在这里插入图片描述

开发步骤

  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站视频

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

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

相关文章

同城预约上门服务APP小程序开发 打造快捷便利生活

随着移动互联网的快速发展&#xff0c;人们的生活方式正在发生深刻的变化。特别是在城市生活中&#xff0c;人们越来越依赖移动应用来解决日常生活中的各种问题。其中&#xff0c;同城预约上门服务APP正成为一种新型的生活服务平台&#xff0c;为人们提供了更加便利和快捷的服务…

2024043期传足14场胜负前瞻

2024043期售止时间为3月17日&#xff08;周日&#xff09;21点30分&#xff0c;敬请留意&#xff1a; 本期深盘多&#xff0c;1.5以下赔率1场&#xff0c;1.5-2.0赔率7场&#xff0c;其他场次是平半盘、平盘。本期14场整体难度中等偏上。以下为基础盘前瞻&#xff0c;大家可根据…

SwiftUI自定义ButtonStyle

SwiftUI自定义ButtonStyle 记录一下如何通过自定义SwiftUI自定义ButtonStyle&#xff0c;来给按钮设计一个点击样式 import SwiftUI /*本文章 通过创建ButtonStyle&#xff0c;来自定义按钮的点击动画*/struct PressButtonStyle: ButtonStyle {func makeBody(configuration: …

find_package 总结

本文参考&#xff1a;“轻松搞定CMake”系列之find_package用法详解 原理 find_package 即在指定目录CMAKE_MODULE_PATH 或 CMAKE_PREFIX_PATH查找对应的cmake文件。 find 模式 Module模式(默认)&#xff1a;查询Findxxx.cmake配置文件, 在CMAKE_MODULE_PATH 目录Config模式…

什么又是线程呢??

线程&#xff1a; 线程可以并发的执行&#xff0c;但是线程的地址是可以共享的 进程与线程的比较&#xff1a; 进程>线程 线程分三种&#xff1a; 用户线程 只有用户程序的库函数来 用户线程 因为操作系统感知不到 线程&#xff0c;如果有线程在运行&#xff0c;然后不交…

爬虫 某物流

目标地址 url "https://api.jdl.com/aging/feeInquiryNewByJDL" 加密参数 ciphertext和data 搜关键字ciphertext跟着栈走 很明显的DES加密 window globalconst e require(jsencrypt); // const e require(JSEncrypt) // e r(775).JSEncrypt // const t requi…

【js刷题:数据结构数组篇之移除元素】

移除元素 一、题目二、思路三、方法1.暴力解法2.双指针法定义快指针和慢指针代码展示 三、力扣刷题1.删除排序数组中的重复项 一、题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额…

四连杆机构运动学仿真 | 【Matlab源码+理论公式文本】

【程序简介】&#x1f4bb;&#x1f50d; 本程序通过matlab实现了四连杆机构的运动学仿真编程&#xff0c;动态展现了四连杆机构的运动动画&#xff0c;同时给出了角位移、角速度和角加速度的时程曲线&#xff0c;除了程序本身&#xff0c;还提供了机构运动学公式推导文档&…

ffmpeg6.0从demux_decode.c源码探索解封装流程

前言 在播放器的播放视频、音视频媒体文件的推流等实际应用中,解封装(demux)这个操作是不可避免的,也是最基础的操作。 拿播放器播放MP4来说,如果想实现播放器视频画面的播放和音频声音的播放都需要经过这个解封装的步骤。因为MP4是一种媒体文件格式,是一种封装格式,M…

释放人工智能的力量:GPU服务器托管和高电机柜托管的关键作用

随着人工智能技术的不断发展&#xff0c;GPU服务器托管和高电机柜托管也变得愈发重要。这些技术在人工智能领域发挥着关键作用&#xff0c;为AI算法的训练和推理提供了强大的计算支持。 GPU服务器托管是指将GPU服务器放置在专门的数据中心中&#xff0c;通过云服务提供商提供的…

java基础入门day01

day01 java的特点 简单&#xff1a;摒弃了c和c的指针&#xff0c;垃圾回收机制&#xff0c;相对而言简单许多 安全&#xff1a;几乎各大银行都会使用java作为其开发平台 跨平台&#xff1a;可以运行在任何的操作系统之上&#xff0c;windows&#xff0c; linux以及mac平台&a…

安装snap再安装flutter再安装localsend@Ubuntu(FreeBSD下未成功)

Localsend介绍 localsend是一个跨平台的文件传送软件&#xff0c;可以在Windows、MacOS、Linux、Android和IOS下互相传送文件&#xff0c;只要在同一个局域网即可。 localsend官网&#xff1a;LocalSend 尝试安装localsend&#xff0c;发现需要使用flutter&#xff0c; 安装f…

PXVDI企业级PVE免费桌面虚拟化部署教程ProxmoxVE

什么是PXVDI&#xff1f; PXVDI是一款基于Proxmox VE为底层的可商用的免费云桌面套件。对熟悉PVE的人来说&#xff0c;这点非常的点赞。首先是PVE是免费的&#xff0c;其次PVE的免费云桌面方案也极为少数。 根据官方提出的价格清单&#xff0c;免费版和商业版在功能上主要的区…

class file has wrong version 61.0, should be 55.0

class file has wrong version 61.0, should be 55.0 一、Android Studio编译报错二、原因分析三、解决方案四、Java类文件版本号与Java版本之间的对应关系 一、Android Studio编译报错 /home/server/Desktop/T750U/FreemeCompass/src/com/freeme/compass/GradienterView.java…

我用Coze给自己的服务号加了一个多功能的GPT服务机器人

我用Coze给自己的服务号加了一个多功能的GPT服务机器人&#xff0c;可以查新闻&#xff0c;交互式回答问题&#xff0c;查快递&#xff0c;画图画&#xff0c;联网回答问题 可以查快递 试用&#xff1a;搜索觉醒AI

HTTPS证书很贵吗?

首先&#xff0c;我们需要明确一点&#xff0c;HTTPS证书的价格并不是一成不变的&#xff0c;它受到多种因素的影响。其中最主要的因素包括证书的类型、颁发机构以及所需的验证级别。 从类型上来看&#xff0c;HTTPS证书主要分为单域名证书、多域名证书和通配符证书。单域名证书…

自动点击脚本

一个简单的自动点击脚本 配置文件张这样&#xff0c;需要的自己截图 excel配置文件 #!/usr/bin/python3# sys.path.append("C:\\Users\苏\\.vscode\\extensions\\ms-python.vscode-pylance-2023.10.50\\dist\\typeshed-fallback\\stubs\\PyAutoGUI") # print(sys.…

串口数据包

一数据包的定义 串口数据包&#xff1a;通常使用的是额外添加包头包尾的这种方式 在HEX数据包里面&#xff0c;数据都是以原始的字节数据本身呈现的&#xff0c;而在文本数据包里面&#xff0c;每个字节就经过了一层编码和译码&#xff0c;最终表现出来的就是文本格式&#x…

电脑自带dll修复在哪里打开呢?马上教会你

由于各种原因&#xff0c;电脑可能会出现一些问题&#xff0c;其中之一就是dll文件丢失。Dll文件是动态链接库文件&#xff0c;它们包含了许多程序运行所需的函数和资源。当这些文件丢失或损坏时&#xff0c;可能会导致程序无法正常运行或出现错误提示。本文将介绍电脑dll文件丢…

计算机网络实训-2 网络设备配置基础

文章目录 一、交换机/路由器的内部组成二、接口类型及接口标识观察&#xff1a;交换机、路由器的外观交换机的接口标识交换机的接口标识举例 路由器的接口标识路由器的接口标识举例 三、配置交换机/路由器的方法通过Console口来配置&#xff08;带外管理&#xff09;通过telnet…