【STM32单片机】电子木鱼设计

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用STM32F103/F407单片机控制器,TFTLCD触摸屏、蜂鸣器等。

主要功能:
系统运行后,TFTLCD显示画面,可触摸木鱼区域,功德计数加1,且蜂鸣器发出提示音。


二、软件设计

/*
作者:嗨小易(QQVIP群2:570487280)*///应用程序
void app_demo(void)
{u8 buf[6];BEEP_Init();KEY_Init();LED_Init();TFTLCD_Init();TP_Init();//触摸不灵敏可重新校准if(KEY_Scan(0)==KEY_UP_PRESS)TP_Adjust();sys_parm_init();//系统参数初始化sys_open_show();//系统开机界面显示while(1){//触摸检测TP_Scan(0);if(tp_dev.x[0]>(tftlcd_data.width-240)/2 && tp_dev.y[0]>(tftlcd_data.height-173)/2){if(tp_dev.x[0]<((tftlcd_data.width-240)/2+240) && tp_dev.y[0]<((tftlcd_data.height-173)/2+173)){tp_dev.x[0]=0;tp_dev.y[0]=0;LCD_ShowPicture((tftlcd_data.width-240)/2,(tftlcd_data.height-173)/2,240,173,(u8 *)gImage_picture);delay_ms(50);LCD_ShowPicture((tftlcd_data.width-240)/2+5,(tftlcd_data.height-173)/2,240,173,(u8 *)gImage_picture);delay_ms(50);sys_ctrl.cnt++;sprintf((char *)buf,"%d",sys_ctrl.cnt);LCD_ShowString((tftlcd_data.width)/2+2*16+8,50,100,100,16,buf);beep_alarm(1,2000);//提示音}}}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

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

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

相关文章

漏刻有时数据可视化Echarts组件开发(46)散点图颜色判断

series组件 series: [{name: Top 5,type: scatter,coordinateSystem: bmap,data: convertData(data.sort(function (a, b) {return b.value - a.value;}).slice(0, 6)),symbolSize: 20,encode: {value: 2},showEffectOn: render,rippleEffect: {brushType: stroke},label: {fo…

分布式系统架构设计之分布式通信机制

二、分布式通信机制&#xff1a;保障系统正常运行基石 在分布式系统中&#xff0c;各个组件之间的通信是保障系统正常运行的基石&#xff0c;直接影响到系统的性能、可扩展性以及整体的可维护性。接下来我们就一起看看通信在分布式系统中的重要性&#xff0c;以及一些常用的技…

Java---IO流讲解(2)

文章目录 1. 字符流1.1 为什么出现字符流1.2 字符流写数据的5种方式1.3 字符流读数据的两种方式1.4 字符缓冲流1.5 字符缓冲流特有功能 2. IO流小结2.1 字节流2.2 字符流 1. 字符流 1.1 为什么出现字符流 由于字节流操作中文时不是特别方便&#xff0c;因此Java提供了字符流。…

SpringBoot - Maven 打包合并一个胖 JAR 以及主项目 JAR 依赖 JAR 分离打包解决方案

问题描述 <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.18.RELEASE</version><configuration><!--<classifier>exec</classifier>--…

JS常用HOOK调试技术

hook技术 Hook 是一种钩子技术&#xff0c;在系统没有调用函数之前&#xff0c;钩子程序就先得到控制权&#xff0c;这时钩子函数既可以加工处理&#xff08;改变&#xff09;该函数的执行行为&#xff0c;也可以强制结束消息的传递。简单来说&#xff0c;修改原有的 JS 代码就…

网络安全保障流程

需求定义 满足法规合规、业务需求、风险评估 信息系统保护轮廓ISPP-----标准化安全保障需求文档----从用户角度规范化、机构化 需要包括&#xff1a;系统描述、安全环境、保障目的、安全保障要求、应用注解、符合性声明7部分 规划设计 考虑业务功能和价值&#xff0c;哪些风险…

12.25广义分布外检测学习/代码复现

A model.getA().toarray() # b np.array(model.RHS) sense np.array(model.sense) f np.array(model.obj)Aineq np.vstack((-Ale, Age)) # 把所有的<和>组合在一起 bineq np.append(-ble, bge) # 这里用append使bineq为一个一维矩阵&#xff0c;而不是2行1列的二…

html动态加载script

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>动态添加JavaScript代码</title> </head> <body> <h1>Hello, World!</h1> <button onclick"add…

SpringBoot 3.2.0 基于Spring Security+JWT实现动态鉴权

依赖版本 JDK 17 Spring Boot 3.2.0 Spring Security 6.2.0 工程源码&#xff1a;Gitee 为了能够不需要额外配置就能启动项目&#xff0c;看到配置效果。用例采用模拟数据&#xff0c;可自行修改为对应的ORM操作 编写Spring Security基础配置 导入依赖 <properties>&l…

Pikachu靶场 字符型SQL注入

在Pikachu靶场里查询 xx or 11 # or 11 # union select username,password from users# 在 MySQL 的 bin 路径下打开 cmd &#xff0c;输入下面的命令&#xff0c;再输入 数据库的密码 mysql -u root -p 执行命令 show databases; use pikachu show tables; desc member; s…

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(1)

前言中曾提到&#xff1a;本章主要说明PCI总线涉及的一些基本知识。 PCI总线作为处理器系统的本地总线&#xff0c;其主要目的是为了连接外部设备&#xff0c;而不是作为处理器的系统总线连接Cache和主存储器。但是PCI总线、系统总线和处理器体系结构之间依然存在着紧密的联系…

java练习之abstract (抽象) final(最终) static(静态) 练习

1&#xff1a;分析总结&#xff1a;写出private、abstract、static、final之间能否联动使用&#xff0c;并写出分析原因 private static final 之间可以任意结合 abstract 不可以与private static final 结合使用 2&#xff1a;关于三个修饰符描述不正确的是(AD) A. static …

Linux操作系统基础知识点

Linux是一种计算机操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年首次发布。Linux操作系统通常与GNU套件一起使用&#xff0c;因此也被称为GNU/Linux。它是一种类UNIX的操作系统&#xff0c;设计为多用户、多任务…

计算机组成原理综合6

补码表示&#xff1a; X&#xff1a;1111 1111 1111 1101 Y&#xff1a;1111 1111 1101 1111 Z&#xff1a;0111 1111 1111 1100 转原码表示&#xff1a;从右往左找第一个“1”&#xff0c;左边的所有数值位按位取反 X&#xff1a;1111 1111 1111 1101 1000 0000 00…

常用的快捷键

快捷键能大大提高使用计算机时的效率。以下是一些常用的快捷键&#xff0c;适用于多种操作系统和应用程序&#xff1a; 通用快捷键 复制: Ctrl C (Windows/Linux) | Cmd C (Mac) 粘贴: Ctrl V (Windows/Linux) | Cmd V (Mac) 剪切: Ctrl X (Windows/Linux) | Cmd X (Ma…

Fiber Node的数据结构,以及如何在Reconciliation阶段被使用。

首先&#xff0c;Fiber Node是React用来描述组件树的数据结构&#xff0c;每一个React组件都对应一个Fiber Node。下面是一个Fiber Node的基本结构&#xff1a; const fiber {// 标识这个Fiber Node的类型&#xff08;函数组件&#xff0c;类组件&#xff0c;DOM节点类型等&a…

OGG-MySQL无法正常同步数据问题分析

问题背景: 用户通过OGG从源端一个MySQL从库将数据同步到目标端的另一个MySQL数据库里面&#xff0c;后面由于源端的从库出现了长时间的同步延时&#xff0c;由于延时差距过大最后选择通过重建从库方式进行了修复 从库重建之后&#xff0c;源端的OGG出现了报错ERROR OGG-0014…

45.常用shell之 unset - 删除环境变量或函数 的用法及衍生用法

unset 是一个在类 Unix 系统的 shell 中常用的命令&#xff0c;用于删除环境变量或 shell 函数。这个命令可以帮助用户管理环境变量&#xff0c;防止不必要的变量干扰或占用资源。以下是 unset 命令的基本用法和一些衍生用法的示例&#xff1a; 基本用法 删除环境变量: unset …

java基础之Java的动态代理如何实现

Java实现动态代理的两种方式 JDK动态代理&#xff1a;Java.lang.reflect 包中的Proxy类和InvocationHandler接口提供了生成动态代理类的能力。Cglib动态代理&#xff1a;Cglib (Code Generation Library )是一个第三方代码生成类库&#xff0c;运行时在内存中动态生成一个子类对…

【Qt-QString】

Qt编程指南 ■ QString■ 编码方式■ 下划线■ 制表符■ arg■ arg 数值转字符串补齐长度■ QString 转换为 char■ QString 转换为 char *■ char * 转换为 QString■ char[] 转换为QString■ char[] 转换为QString■ QByteArray 转换为 QString ■ QByteArray■ QByteArray::…