GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭

效果:

开关控制灯的亮灭

目录

1.找到引脚组别(DEFG)

led灯硬件结构

开关硬件结构

2.时钟使能

3.GPIO时钟控制

4.控制实现思路 

5. 完整代码

6.视频演示


1.找到引脚组别(DEFG)

开关的引脚组别--E;LED灯的引脚组别--F

led灯硬件结构

开关硬件结构

2.时钟使能

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);          //LED
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);          //KEY

3.GPIO时钟控制

//LED--GPIO参数配置GPIO_InitTypeDef led_gpio;                   //定义变量led_gpio.GPIO_Mode = GPIO_Mode_OUT;          //引脚以输出方式工作led_gpio.GPIO_OType = GPIO_OType_PP;         //推挽led_gpio.GPIO_Pin = GPIO_Pin_10;led_gpio.GPIO_Speed=GPIO_High_Speed;         //gpio的反应速率,不太影响led_gpio.GPIO_PuPd=GPIO_PuPd_UP;             //上拉  GPIO_PuPd_DOWN 下拉//GPIO_PuPd_NOPULL    GPIO_Init(GPIOF,&led_gpio);                  //初始化变量
//KEY--GPIO参数配置GPIO_InitTypeDef key_gpio;                  //定义变量key_gpio.GPIO_Mode = GPIO_Mode_IN;          //引脚以输入方式工作key_gpio.GPIO_OType = GPIO_OType_PP;        //推挽key_gpio.GPIO_Pin =  GPIO_Pin_4;            //第几根引脚key_gpio.GPIO_Speed=GPIO_High_Speed;        //gpio的反应速率,不太影响key_gpio.GPIO_PuPd=GPIO_PuPd_UP;            //上拉  //取决于所调用的结构GPIO_Init(GPIOE,&key_gpio);                 //初始化

4.控制实现思路 

while(1)                   //大循环体,保证一直在运行,被控制{key0= GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);   //默认高电平,按下,接地if(key0==1){GPIO_WriteBit(GPIOF, GPIO_Pin_10,1);         //led高电平,灯灭}else{GPIO_WriteBit(GPIOF, GPIO_Pin_10,0);         //led高电平,灯亮}    }

5. 完整代码

#include "stm32f4xx.h"                  // Device headerint main()
{//时钟使能--LEDRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//GPIO时钟控制  //参数配置//让程序决定第几组第几根引脚,如何工作GPIO_InitTypeDef led_gpio;led_gpio.GPIO_Mode = GPIO_Mode_OUT;    //引脚以输出方式工作led_gpio.GPIO_OType = GPIO_OType_PP;	 //推挽led_gpio.GPIO_Pin =  GPIO_Pin_9| GPIO_Pin_10 |GPIO_Pin_8;led_gpio.GPIO_Speed=GPIO_High_Speed;      //gpio的反应速率,不太影响led_gpio.GPIO_PuPd=GPIO_PuPd_DOWN;          //上拉  GPIO_PuPd_DOWN 下拉//GPIO_PuPd_NOPULLGPIO_Init(GPIOF,&led_gpio);GPIO_SetBits(GPIOF, GPIO_Pin_9);GPIO_SetBits(GPIOF, GPIO_Pin_10);uint16_t key0=0;//时钟使能--KEY开关RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);//GPIO时钟控制  //参数配置//让程序决定第几组第几根引脚,如何工作GPIO_InitTypeDef key_gpio;key_gpio.GPIO_Mode = GPIO_Mode_IN;        //引脚以输入方式工作key_gpio.GPIO_OType = GPIO_OType_PP;	    //推挽key_gpio.GPIO_Pin =  GPIO_Pin_4| GPIO_Pin_3 |GPIO_Pin_2;//第几根引脚key_gpio.GPIO_Speed=GPIO_High_Speed;      //gpio的反应速率,不太影响key_gpio.GPIO_PuPd=GPIO_PuPd_UP;          //上拉  GPIO_PuPd_DOWN 下拉//GPIO_PuPd_NOPULLGPIO_Init(GPIOE,&key_gpio);               //初始化while(1){//uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin);key0= GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);//默认高电平,按下,接地if(key0==1){GPIO_WriteBit(GPIOF, GPIO_Pin_10,1);//led高电平,灯灭}else{GPIO_WriteBit(GPIOF, GPIO_Pin_10,0);	//led高电平,灯亮}	}
}

6.视频演示

开关控制灯的亮灭

PE02、PE03原理与PE04相同

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

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

相关文章

【linux】基本指令(上篇)

1.快速认识5~6个指令 pwd指令 ls指令 touch指令 cd指令 clear指令 touch指令 详细讲解 首先有一个问题就是当我们创建一个文件,但是没有往里面写内容,那么磁盘上会有该文件吗? 磁盘上会保存,因为创建好的文件,没有…

IDEA安装python插件并配置

目录 一、Mac1. 安装插件2. 新建项目3. 下载第三方库4. 配置镜像源 一、Mac 1. 安装插件 在plugins中搜索python 2. 新建项目 使用本项目独享的虚拟环境,选择解释器 如果需要修改解释器可以进入project structure,在SDKs中点击,选择add py…

clip-path,css裁剪函数

https://www.cnblogs.com/dzyany/p/13985939.html clip-path - CSS:层叠样式表 | MDN 我们看下这个例子 polygon里有四个值分别代表这四个点相对于原图左上方的偏移量。 裁剪个五角星

解决vue3项目打包发布到服务器后访问页面显示空白问题

1.在 vite.config.ts 文件中 加入 base:./ 当你将 base 设置为 / 时,它表示你的应用程序将部署在服务器的根路径上,(将 base 设置为 / 表示你的应用程序部署在服务器的根路径上,并且 Vite 会相应地处理资源和路由的路径…

【UE】制作一块布

效果 步骤 1. 新建一个空白模板工程,新建一个Basic关卡 2. 选项模式选择“建模” 3. 创建一个矩形 宽度、深度设为500,宽度细分和深度细分设置为100,然后点击接受 此时在浏览器中编辑器也帮我们创建了一个矩形的静态网格体,这里…

Peter算法小课堂—差分与前缀和

差分 Codeforces802 D2C C代码详解 差分_哔哩哔哩_bilibili 一维差分 差分与前缀和可以说成减法和加法的关系、除法和乘法的关系、积分和微分的关系(听不懂吧) 给定数组A,S为A的前缀和数组,则A为S的差分数组 差分数组构造 现…

TCP/IP_整理起因

先分享一个初级的问题;有个客户现场,终端设备使用客户网络更新很慢,使用手机热点更新速度符合预期;网络部署情况如下: 前期花费了很大的精力进行问题排查对比,怀疑是客户网络问题(其他的客户现…

微信开发者工具真机调试连接状态在正常和未连接之间反复横跳

开启局域网模式能解决这个问题,目前只找到这一个方法

Ubuntu安装HP LaserJet P3010系列打印机驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装驱动二、其它设置总结 前言 最近在研究Ubuntu Desktop版,无意间看到了打印机选项,就好奇去试了试。居然配置成功了&#xff0c…

单片机实验(三)

前言 实验一:利用定时器T1的中断控制P1.7引脚输出音频信号,启动蜂鸣器发出一段熟悉的与众不同的具有10个音节的音乐音频。 实验二:使用定时器/计数器来实现一个LCD显示年、月、日、星期 、时、分、秒的电子表,要求时和分可以方便…

负电源电压转换-TP7660H

负电源电压转换-TP7660H 简介引脚说明典型应用电路倍压与反压的应用电路 简介 TP7660H 是一款 DC/DC 电荷泵电压反转器专用集成电路。芯片能将输入范围为 2.5V~11V 的电压转换成相应的-2.5V~-11V 的输出,电压转换精度可达99.9%,电…

女子曝被医生男友下药流产,男子被警方行拘10日,医院停职!

近日,一则关于女子被医生男友暗中下堕胎药导致流产的消息引起了广泛关注。经过一个多月的报案和调查,如今有了新的进展。 11月30日,王女士向华商报大风新闻记者证实,北京中关村某医院涉事医生已被行政拘留,被处以行政拘…

RabbitMQ学习一

RabbitMQ学习 RabbitMQ相关概念Virtual host数据隔离SpringAMQP第一种 基本消息模型第二种 WorkQueues模型第三种 发布订阅模型(fanout交换机)fanout交换机实例 第四种 Direct交换机direct交换机实例基于注解的方式声明——direct交换机 第五种Topic交换…

Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式

一、Builder设计模式 WebSecurity、HttpSecurity、AuthenticationManagerBuilder 都是框架中的构建者,把他们放到一起看看他们的共同特点: 查看AuthenticationManagerBuilder的继承结构图: 查看HttpSecurity的继承结构图: 查看W…

记录 | onnx-simplifier安装、使用

安装: pip install onnx-simplifier# 若想加速 # [可选] 使用豆瓣源加速 pip install -i https://pypi.douban.com/simple onnx-simplifier# [可选] 使用阿里源加速 pip install -i http://mirrors.aliyun.com/pypi/simple onnx-simplifier使用: pytho…

vue开发中遇到的问题记录

文章目录 前言1、css 即时使用了scoped子组件依然会生效2、路由配置如果出现重复name,只会生效最后一个,且前端的路由无效3、组件之间事件传递回调需要先定义emits: [],不然会警告提示4、动态配置数据中引入了组件为参数,出现警告…

Android 断点调试

Android 调试 https://developer.android.google.cn/studio/debug?hlzh-cn 调试自己写的代码(不在Android源码) 点击 Attach debugger to Android process 图标 需要在添加断点界面手动输入函数名 但也可以不手动,有个技巧可以new 空proje…

了解SpireCV如何利用G1吊舱进行点击跟踪

功能概述 SpireCV-SDK是一个专为智能无人系统打造的边缘实时感知SDK库。该库能够控制无人机的相机和吊舱,包括拍照、录像、推流等功能,并可以保存视频和进行推流。此外,SpireCV-SDK还集成了目标检测、识别与跟踪功能,以实现更智能…

Everything结合内网穿透搭建在线资料库并实现随时随地远程访问

Everythingcpolar搭建在线资料库,实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库,实现随时随地访问前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前…

自己动手实现一个深度学习算法——七、卷积神经网络

文章目录 1.整体结构2.卷积层1)全连接层存在的问题2)卷积运算3)填充4)步幅5)3维数据的卷积运算6)结合方块思考7)批处理 3.池化层1)池化层的特征 4.卷积层和池化层的实现1&#xff09…