十大拿货网站如何用手机做音乐网站

张小明 2026/1/10 18:36:41
十大拿货网站,如何用手机做音乐网站,怎么做网站建设的ppt,有网址 有空间怎么做网站目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 ​ 七、包含内容 项目分享 一、前言 项目成品图片#xff1a; 哔哩哔哩视频链接#xff1a; https://www.bilibili.com/video/BV13AUSBLE2Q/…目录一、前言二、项目简介1.功能详解2.主要器件三、原理图设计四、PCB硬件设计PCB图五、程序设计六、实验效果 ​七、包含内容项目分享一、前言项目成品图片哔哩哔哩视频链接https://www.bilibili.com/video/BV13AUSBLE2Q/?spm_id_from333.1387.homepage.video_card.clickvd_source199aed5297a00e80e1faf7e270afe8d7资料分享见文末二、项目简介1.功能详解基于STM32的智能家用垃圾桶功能如下环境采集超声波传感器检测垃圾桶剩余容量将垃圾桶剩余容量映射为百分比显示光电红外传感器检测是否有人靠近火焰传感器检测是否发生火灾。模式切换可通过按键切换自动模式和手动模式自动模式自动模式下如果垃圾桶未满则指示灯1点亮如果垃圾桶已满则指示灯2点亮并且蓝牙APP接收信息“垃圾桶已满”如果有人且垃圾桶未满则打开垃圾桶桶盖如果垃圾桶已满则不打开桶盖且蜂鸣器报警提醒通过火焰传感器检测是否发生火灾如果发生则蜂鸣器报警且两个指示灯同时亮起垃圾桶桶盖关闭时打开消毒灯进行消毒手动模式手动模式下可通过按键控制垃圾桶桶盖和消毒灯的开关阈值调节可以通过按键调节垃圾桶的距离阈值以及控制消毒模式是否打开蓝牙APP通过蓝牙APP可接收环境信息数据和控制指令下发2.主要器件STM32F103C8T6最小系统板OLED显示屏4针IIC协议光电红外传感器火焰传感器HC-SR04超声波传感器BT04-A蓝牙模块UV紫外线消毒灯继电器舵机蜂鸣器LED灯垃圾桶模型三、原理图设计四、PCB硬件设计PCB图五、程序设计#include stm32f10x.h #include led.h #include beep.h #include usart.h #include delay.h #include oled.h #include key.h #include Modules.h #include TIM2.h #include adcx.h #include flash.h #include usart2.h #include usart3.h #include ultrasonic.h #include IR.h #include HW.h #include servo.h #include timer.h /****************异方辰电子工作室****************** STM32 *文件 STM32智能垃圾桶 *版本 V1.0 *日期 2025.11.07 *MCU STM32F103C8T6 *接口 见代码 *BILIBILI 异方辰电子 *小红书 异方辰电子 *CSDN 异方辰电子 *授权IP 辰哥单片机设计、异方辰、YFC电子、北海单片机设计 **********************BEGIN***********************/ #define KEY_Long1 11 #define KEY_1 1 #define KEY_2 2 #define KEY_3 3 #define KEY_4 4 #define FLASH_START_ADDR 0x0801f000 //写入的起始地址 SensorModules sensorData; //声明传感器数据结构体变量 SensorThresholdValue Sensorthreshold; //声明传感器阈值结构体变量 DriveModules driveData; //声明驱动器状态结构体变量 uint8_t mode 1; //系统模式 1自动 2手动 3设置 u8 dakai;//串口3使用的传递变量 u8 Flag_dakai;//串口3接收标志位 uint8_t is_secondary_menu 0; // 0一级菜单1二级菜单 uint8_t secondary_pos 1; // 二级菜单光标位置1-3对应时/分/秒 uint8_t secondary_type 0; // 二级菜单类型0RTC时间1定时开启2定时关闭 uint8_t send_data[] A7:00001;//语音播放曲目1 uint8_t send_data1[] A7:00002;//语音播放曲目2 float Angle; //定义角度变量 //系统静态变量 //static uint8_t count_a 1; //自动模式按键数 static uint8_t count_m 1; //手动模式按键数 //static uint8_t count_s 1; //设置模式按键数 //static uint8_t last_mode 0; // 记录上一次的模式 //static uint8_t last_count_s 0; // 记录设置模式内上一次的页面 /** * brief 显示菜单内容 * param 无 * retval 无 */ enum { AUTO_MODE 1, MANUAL_MODE, SETTINGS_MODE }MODE_PAGES; int main(void) { SystemInit();//配置系统时钟为72M delay_init(72); // 系统时钟72MHz ADCX_Init(); LED_Init(); LED1_Init(); LED1_On(); LED2_Init(); BEEP_Init(); BEEP_OFF; USART1_Config();//串口1初始化PC USART2_Init(); //串口3初始化蓝牙 USART3_Config();//串口2初始化//语音模块 Key_Init(); OLED_Init(); OLED_Clear();//清屏 Ultrasonic_Init();//超声波初始化 IR_Init(); HW_Init(); Servo_Init(); // 添加的状态管理变量 static uint8_t last_mode 0; // 记录上一次模式 static uint32_t last_sensor_time 0; // 传感器扫描时间控制 static uint32_t last_display_time 0; // 显示刷新时间控制 TIM2_Init(72-1,1000-1); // 2ms定时中断 printf(Start \n); while (1) { // 优先处理按键和通信 USART2_ProcessCmd(); // 先处理串口命令 // 获取当前系统时间 uint32_t current_time delay_get_tick(); // 使用系统滴答计数 // 优化传感器扫描频率 if(current_time - last_sensor_time 100) // 每200ms扫描一次传感器 (100 * 2ms 200ms) { SensorScan(); //获取传感器数据 last_sensor_time current_time; } // 立即处理按键 uint8_t current_key_num KeyNum; // 保存当前按键值 // 模式切换按键立即处理 if(current_key_num ! 0) { switch(mode) { case AUTO_MODE: if(current_key_num KEY_1) { mode MANUAL_MODE; count_m 1; // 切换到手动模式时关闭灯和蜂鸣器 driveData.LED_Flag 0; driveData.LED2_Flag 0; driveData.BEEP_Flag 0; KeyNum 0; // 立即清除按键 } // else if(current_key_num KEY_Long1) // { // mode SETTINGS_MODE; // count_s 1; // KeyNum 0; // 立即清除按键 // } break; case MANUAL_MODE: if(current_key_num KEY_1) { mode AUTO_MODE; KeyNum 0; // 立即清除按键 } break; // case SETTINGS_MODE: // // 设置模式内部按键在各自模式中处理 // break; } } // 模式切换优化 if(last_mode ! mode) { OLED_Clear(); last_mode mode; // 立即绘制新模式的固定内容 switch(mode) { case AUTO_MODE: OLED_autoPage1(); break; case MANUAL_MODE: OLED_manualPage1(); break; // case SETTINGS_MODE: // OLED_settingsPage1(); // break; } OLED_Refresh(); // 立即刷新显示 } // 模式处理 switch(mode) { case AUTO_MODE: // 直接调用显示不使用SetAuto() SensorDataDisplay1(); //显示传感器1数据 AutoControl(); Control_Manager(); break; case MANUAL_MODE: { static uint8_t manual_page_initialized 0; static uint8_t last_manual_count 0; static uint8_t last_LED_Flag 0; static uint8_t last_BEEP_Flag 0; static uint8_t force_refresh 0; // 强制刷新标志 // 模式切换时重新初始化 if(last_mode ! mode) { manual_page_initialized 0; last_manual_count 0; last_LED_Flag driveData.LED_Flag; last_BEEP_Flag driveData.BEEP_Flag; force_refresh 1; // 设置强制刷新标志 // 确保光标指向灯光 count_m 1; // 确保设备状态为关 driveData.LED_Flag 0; driveData.BEEP_Flag 0; } uint8_t current_manual_count SetManual(); // 检查设备状态是否改变如果改变则强制刷新显示 uint8_t need_refresh 0; if(driveData.LED_Flag ! last_LED_Flag || driveData.BEEP_Flag ! last_BEEP_Flag) { need_refresh 1; last_LED_Flag driveData.LED_Flag; last_BEEP_Flag driveData.BEEP_Flag; } // 确保页面已初始化或光标位置改变或设备状态改变或强制刷新时重新绘制 if(!manual_page_initialized || current_manual_count ! last_manual_count || need_refresh || force_refresh) { OLED_manualPage1(); // 固定文字 OLED_manualOption(current_manual_count); // 光标 ManualSettingsDisplay1(); // 状态 manual_page_initialized 1; last_manual_count current_manual_count; force_refresh 0; // 清除强制刷新标志 OLED_Refresh(); // 强制刷新显示 } // 立即处理手动模式按键 if(current_key_num ! 0) { ManualControl(current_manual_count); OLED_manualPage1(); // 重新绘制固定文字 OLED_manualOption(current_manual_count); // 光标 ManualSettingsDisplay1(); // 状态 OLED_Refresh(); // 按键操作后立即刷新 KeyNum 0; // 立即清除按键标志 } // 确保显示内容始终正确 OLED_manualPage1(); // 固定文字 OLED_manualOption(current_manual_count); // 光标 ManualSettingsDisplay1(); // 状态 Control_Manager(); break; } } // 限制显示刷新频率 if(current_time - last_display_time 25) // 每50ms刷新一次显示 (25 * 2ms 50ms) { // 所有模式都需要刷新显示 OLED_Refresh(); last_display_time current_time; } } }六、实验效果七、包含内容项目分享
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站用到的技术舟山网站建设流程

在学术写作和科技文档创作中,数学公式的排版质量直接影响内容的专业性和可读性。Typst作为新一代标记语言排版系统,以其简洁优雅的语法和强大的数学排版能力,正在成为科研工作者和技术文档作者的新宠。然而,许多用户在初次使用Typ…

张小明 2026/1/9 21:38:14 网站建设

网站服务器 虚拟主机网站建设规划ppt模板

小红书数据采集工具完整使用指南:从零基础到实战精通 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 想要轻松获取小红书平台的公开数据吗?xhs这款基…

张小明 2026/1/10 6:37:18 网站建设

饶平网站建设公司wordpress显示不正常

在审批流中,委派​ 是一种常见的操作,指的是当前审批人将本应由自己处理的任务,临时交给他人代为处理,但最终决策权和责任仍归属于原审批人。 点击若依工作流进行在线体验 工作原理 审批流中的“委派”通常具备以下几个关键特点…

张小明 2026/1/5 3:01:52 网站建设

廊坊专业网站制作服务郑州做网站推广多少钱

暗黑破坏神2存档编辑实战指南:5大问题解决方案与进阶玩法揭秘 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 作为暗黑破坏神2的忠实玩家,你是否曾因角色属性分配失误而懊悔…

张小明 2026/1/6 7:16:23 网站建设

58同城兰州网站建设企业官网建设费用

你是否正在为Apache Doris集群的日常运维而烦恼?手动配置节点、监控性能指标、处理故障恢复等任务不仅耗时耗力,还容易出错。今天,我将为你介绍Doris Manager——一款专门为Apache Doris设计的强大管理工具,让你的集群管理变得简单…

张小明 2026/1/7 8:00:36 网站建设

本地搭建linux服务器做网站杭州网站建站平台

想为你的AI语音项目寻找高质量的训练数据吗?🤔 Common Voice这个开源语音数据集正是你需要的宝藏!它汇集了全球286种语言的语音样本,总时长超过35,000小时,为语音识别、语音合成等应用提供了丰富的素材。无论你是刚入门…

张小明 2025/12/30 22:15:58 网站建设