当前位置: 首页 > news >正文

stm32第五天按键的基础知识

 一:按键连接示意图

按键控制LED灯
软件设计流程
· 初始化系统
o 初始化GPIO外设时钟
o 初始化按键和LED的引脚
• 检测按键输入电平来控制LED灯
o SW2控制灯开
。 SW3控制灯关

1:key.c工程

#include"key.h"
#include"stm32f10x.h"

void Key_Init(void)//按键的初始化函数
{
	//有两个步骤1:初始化按键外设 2:初始化按键时钟
	
	GPIO_InitTypeDef Key_Initstruct;//初始化按键结构体
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE );//打开APB2总线下GPIOA和GPIOC的时钟
	
	Key_Initstruct.GPIO_Pin=GPIO_Pin_0;//初始化A0引脚
	Key_Initstruct.GPIO_Mode=GPIO_Mode_IPU;//初始化A0为上拉输入模式,因为上拉模式默认为高电平,按下开关会变为低电平
	GPIO_Init(GPIOA,&Key_Initstruct);//初始化A0的结构体
	
	Key_Initstruct.GPIO_Pin=GPIO_Pin_13;//初始化C13引脚
	Key_Initstruct.GPIO_Mode=GPIO_Mode_IPU;//初始化C13为上拉输入模式
	GPIO_Init(GPIOC,&Key_Initstruct);//初始化C13的结构体
	
	
	
	
}

 2:key.h工程

void Key_Init(void);//声明函数



3:主函数main.c工程 

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"
#include "key.h"

void delay(uint16_t time)//延时1ms  软件延时粗延时
{
	uint16_t i=0;
	while(time --)
	{
		i=12000;
		while(i --);
	}
	
}


int  main()
{



	LED_Init();
	
	Bear_Init();//初始化蜂鸣器的引脚GPIO A3
	Key_Init();//初始化按键的时钟和引脚配置
	GPIO_SetBits(GPIOA, GPIO_Pin_1); //初始化灯为灭

   while(1)
	 {
		if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==0)//如果按键SW2 PA0等于0就是按下按键
		{
			GPIO_ResetBits(GPIOA, GPIO_Pin_1);//A1输出低电平,灯亮
		}
		 
		if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13)==0)//如果按键SW3 PC13等于0就是按下按键
		{
			GPIO_SetBits(GPIOA, GPIO_Pin_1);//A1输出高电平,灯灭
		}
	 
		
		
	 }
		 
   
}


相关文章:

  • 基于k3s部署Nginx、MySQL、PHP和Redis的详细教程
  • Useage of Generic in Java
  • 数据结构——树与二叉树
  • Java 大视界 -- Java 大数据在智能政务舆情引导与公共危机管理中的应用(138)
  • 【电源】斩波电路
  • 使用Ollama本地部署DeepSeek
  • 中国在 AI 上超越美国,需要另辟蹊径
  • LeetCode hot 100—最小栈
  • Android第三次面试总结(网络篇)
  • 线性回归与投影的关系
  • SpringBoot + Mybatis Plus 整合 Redis
  • 文本检测-文本内容审核-文本过滤接口如何用PHP调用?
  • 大华HTTP协议在智联视频超融合平台中的接入方法
  • 每日一题---翻转二叉树
  • 软件项目设计思维:从用户痛点到数字世界的优雅解构
  • 黑马商城完成随笔
  • 文心大模型4.5及X1重磅上线,真实测评
  • svg画图
  • MySQL复合查询
  • RocketMQ学习
  • 夜读|尊重生命的棱角
  • 时隔4年多,这一次普京和泽连斯基能见面吗?
  • 比特币挖矿公司GRYP股价涨超171%:将与特朗普儿子创设的公司合并
  • AI观察|从万元到百万元,DeepSeek一体机江湖混战
  • 巴基斯坦全国航班仍持续延误或取消
  • 文学花边|对话《借命而生》原著作者石一枫:我给剧打90分