2023版 STM32实战2 按键驱动(电路与代码都讲解)

news/2024/6/3 18:48:34 标签: stm32, 单片机, 嵌入式硬件

常规电路(带上拉电阻)

阻值可选3.3/4.7/5.1/10 单位K
在这里插入图片描述

偷懒电路

利用GPIO内部的上拉模式
在这里插入图片描述

代码(直接拷贝使用)

这是一个按键控制灯亮灭的demo
为了新手方便我直接都写在了main.c文件

#include "stm32f10x.h"


void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_Init(GPIOE, &GPIO_InitStructure);
}

void KEY_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_Init(GPIOE, &GPIO_InitStructure);
}

void delay(u32 time)
{
	while(time--);
}

int main(void)
{	
	LED_Init();
	KEY_Init();
	while(1)
	{
		if( GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)==0 )
		{
			GPIO_ResetBits(GPIOB,GPIO_Pin_5);
		}
		else if( GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)==0 )
		{
			GPIO_SetBits(GPIOB,GPIO_Pin_5);
		}
	}
}

工程获取

三连后点击下方头像


http://www.niftyadmin.cn/n/5041284.html

相关文章

postman怎么进行参数化?

一、先准备好参数化数据 (参数化数据可以使用Excel或者txt的文件。 注意如果使用的是txt的文件,一定要使用英文的逗号,不然的话会报错!) 注意:填写好的数据后,保存的时候需要另存为&#xff0c…

找不到名称 “$“。是否需要安装 jQuery 的类型定义? 请尝试使用 `npm i --save-dev @types/jquery`。

vitevue3环境 1、安装jQuery npm install --save jquery 2、在main.ts文件进行配置 declare const window: any; import jQuery from jquery; window.$ window.jQuery jQuery; 注意:需要声明window属性; 要不然会报错:类型“Window &am…

如何批量为文件夹命名

如果你想要命名一些这样名字具有规律性的文件夹,当文件的数量增多,一个一个命名是非常耗费时间的。很容易想到,如果使用EXCEL,只需往下拉,就能很轻松的拉出1到5。那么,我们如何利用EXCEL来对文件夹进行快速…

软件工程第一次作业参考答案

题目 名词解释:软件危机、软件、软件工程、软件生命周期、瀑布模型、原型模型、增量模型、喷泉模型、敏捷过程模型。 答案 软件危机:软件危机是指在软件开发过程中所面临的一系列问题和挑战,包括成本超支、进度延误、质量不达标等。 软件…

Nginx之防盗链及高可用解读

目录 防盗链解读 盗链是什么? Nginx中配置防盗链 高可用解读 Keepalived Nginx中配置高可用 防盗链解读 盗链是什么? 网页的加载顺序是先加载HTML相关的内容,然后解析HTML的内容,那些需要加载图片,那些需要加…

服务器为什么要一直开机?

很多人在选择服务器的时候会想要省钱,然后就想要自己搭建一个服务器,其实服务器呢是需要24小时一直开机的,一般服务器的工作时间是3-5年,它们第一次开机后就会一直到机器故障淘汰才会关机哦,这是为什么呢?今…

React antd Select 无法在disabled状态下选择并复制输入框内的内容情况分析及解决方案

文章目录 背景问题分析解决思路一:会不会是由于在选择框内hover的时候出现的那个图标导致的解决思路二:会不会是这个span禁止复制解决思路三:去看看antd具体实现 最终解决方案其他版本的解决方案antd3.*antd5.* 背景 在React项目开发中&…

解释器风格架构C# 代码

/*解释器风格架构是一种基于组件的设计架构,它将应用程序分解为一系列组件,每个组件负责处理特定的任务。这种架构有助于提高代码的可维护性和可扩展性。以下是如何使用C#实现解释器风格架构的步骤:定义组件:首先,定义…