单片机实现模式转换

[任务] 
 要求通过单片机实现以下功能: 
 1.单片机有三种工作模式(定义全局变量MM表示模式,MM=1,2,3表示三种不同的模式) 
 LED控制模式 
 风扇控制模式 
 蜂鸣器控制模式 
 2.可以在某一个模式下通过拓展板KEY1按键控制设备 
 (按键按下一次,设备打开,按键再按下一次,设备关闭(设备管脚输出反向电平) 
 3.关于模式的切换可以通过以下两种方式: 
(通过串口通信,电脑端发送当前模式(设置串口接收中断,接收到的字符串进行比较) 
电脑发送LED、进入LED模式 
 电脑发送FAN,进行风扇控制模式 
 电脑发送BEE,进入蜂鸣器控制模式 
 通过底板用户自定义按键进行模式切换  
 .按键按下一次进入发光二极管模式,再按一次,进入风扇模式,再按一下,进入蜂鸣器模式

 1.按键控制模式转换

void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{//user按键对于GPIO接口为PC12if(GPIO_Pin == GPIO_PIN_12){work_model++;if(work_model>9){work_model=1;}}//拓展版KEY1按键为PC9if(GPIO_Pin == GPIO_PIN_9){if(work_model%3==0){//LD1为PC4HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_4);}else if(work_model%3==1){//风扇为PC6HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);}else if(work_model%3==2){//蜂鸣器为PA15HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15);}}
}

2.串口输入切换模式

//重写的fputc函数
int fputc(int ch,FILE* fp){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,3);return ch;
}//回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{printf("output:%s\n\r",buf);if(strcmp(buf,"LED")==0){work_model = 0;}if(strcmp(buf,"FAN")==0){work_model = 1;}if(strcmp(buf,"BEE")==0){work_model = 2;}memset(buf,0,sizeof(buf));
}

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

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

相关文章

生成模型:变分自编码器-VAE

1.基本概念 1.1 概率 这里有: x为真实图像,开源为数据集, 编码器将其编码为分布参数 x ^ \hat{x} x^为生成图像, 通过解码器获得 p ( x ) ^ \hat{p(x)} p(x)^​: 观测数据的分布, 即数据集所构成的经验分布 p r e a l ( x ) p_{real}(x) preal​(x): …

攻防世界 wtf.sh-150

点进去,发现是一个类似于论坛的网站,并且对报错等做了处理 用御剑扫描一下 ​ 发现是php形式的文件,但点进去访问不了。看看wp,发现此题存在路径穿越漏洞,就是(如果应用程序使用用户可控制的数据&#xff0…

Google Play开发者账号的高风险行为解析

在安卓应用开发行业里,Google Play 开发者账号是开发者们通向全球用户的重要桥梁。凭借它,开发者们能够将精心打造的应用推向市场,然而,开发者账号的使用也包含了诸多风险,一些不经意的操作可能会给开发者账号带来封禁…

网络安全-web应用程序发展历程(基础篇)

1.网站程序发展 web1.0 网站是别人的,只能是随便看看 web2.0网站是朋友的,可以进行交流了 web3.0网站是自己的,可以实现买卖交流。 静态内容阶段:web由大量的静态文档构成,web被看作成超文本共享文件服务器。别人只…

继承(6)

大家好,今天我们来继续学习继承的内容,了解一下this和super两者的一些特性和区别。话不多说,来看。 1.7 super 和 this super和 this都可以在成员方法中用来访问:成员变量和调用其他的成员函数,都可以作为构造方法的第一条语句,那他们之间有…

[离线数仓] 总结二、Hive数仓分层开发

接 [离线数仓] 总结一、数据采集 5.8 数仓开发之ODS层 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构。 (2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比率,较高的,此处选择gzip。 CompressedStorage - Apache Hive - Apac…

3D机器视觉的类型、应用和未来趋势

3D相机正在推动机器视觉市场的增长。很多制造企业开始转向自动化3D料箱拣选,专注于使用3D视觉和人工智能等先进技术来简化操作并减少开支。 预计3D相机将在未来五年内推动全球机器视觉市场,这得益于移动机器人和机器人拣选的强劲增长。到 2028 年&#…

Mac-docker配置

1.配置的文件路径 cd ~/.docker (base) zhangyaweimacbookair .docker % ls buildx cli-plugins config.json contexts daemon.json desktop-build mutagen run (base) zhangyaweimacbookair .docker % cat daemon.json## 重启docker服务 sudo systemctl daemon-reload sudo…

SSM-SpringMVC-请求响应、REST、JSON

目录 “为什么要学 SpringMVC?它和 Servlet 是什么关系?” “什么是异步?为什么异步交互中常用 JSON 格式?异步请求和 JSON 如何配合?” 一、概述 SpringMVC主要负责 1 SpringMVC的常用组件 2 SpringMVC的工作流程…

【Arm】Arm 处理器的半主机(semihosting)机制

概览 通过 semihosting 机制,主机可以通过调试器使用目标计算机 IO 接口。 例如开发者的 PC 通过 J-Link 来使用 STM32 MCU 的输入输出。 这些功能的示例包括键盘输入、屏幕输出和硬盘 I/O。例如,可以使用此机制启用 C Library 中的函数,如…

网络安全-XSS跨站脚本攻击(基础篇)

漏洞扫描的原理 1.跨站脚本攻击介绍 xss跨站脚本攻击: xSS 全称(Cross site Scripting )跨站脚本攻击,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名,XSS是指攻…

深度学习与计算机视觉 (博士)

文章目录 零、计算机视觉概述一、深度学习相关概念1.学习率η2.batchsize和epoch3.端到端(End-to-End)、序列到序列(Seq-to-Seq)4.消融实验5.学习方式6.监督学习的方式(1)有监督学习(2)强监督学习(3)弱监督学习(4)半监督学习(5)自监督学习(6)无监督学习(7)总结:不同…

n 维数组(张量)关于轴 axis 的理解

本文将从两个角度来理解 “轴” 的概念,着重阐述 1.2 节中的理解,并借此加深问题一和问题二的理解。 一、问题:如何理解 numpy 数组在轴上的 sum 操作 二、问题:torch 张量中的维度 dim 也是如此 一、问题:如何理解 n…

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…

mysql -> 达梦数据迁移(mbp大小写问题兼容)

安装 注意后面初始化需要忽略大小写 初始化程序启动路径 F:\dmdbms\tool dbca.exe 创建表空间&#xff0c;用户&#xff0c;模式 管理工具启动路径 F:\dmdbms\tool manager.exe 创建表空间 创建用户 创建同名模式&#xff0c;指定模式拥有者TEST dts 工具数据迁移 mysql -&g…

MacBook Linux 树莓派raspberrypi安装Golang环境

个人还是比较喜欢用go语言开发,比java开发效率高,以后会持续更新golang相关的博客 MacBook安装golang环境 官方下载地址: https://golang.google.cn/dl/ 官方下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压 tar -zxvf xxx.tar.gz #配置环境变量 vim ~/.zshrc #文件最后…

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现&#xff1a; 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件&#xff08;例如&#xff1a;C:\Program Files\National Ins…

SQL概述

SQL SQL&#xff08;Structured Query Language&#xff09;是“结构化查询语言”&#xff0c;它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中。如&#xff1a;MySQL、Oracle、SQL Server 等。除了 SQL 标准之外&#xff0c;大部分 SQL 数据库程序都拥有它们自…

WandB使用笔记

最近看代码&#xff0c;发现代码中有wandb有关的内容&#xff0c;搜索了一下发现是一个模型训练工具&#xff0c;然后学习了一下&#xff0c;这里记录一下使用过程&#xff0c;方便以后查阅。 WandB使用笔记 登录WandB 并 创建团队安装 WandB 并 登录模型训练过程跟踪模型版本管…