欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > stm32第五天按键的基础知识

stm32第五天按键的基础知识

2025/3/18 15:27:57 来源:https://blog.csdn.net/2402_88972815/article/details/146326674  浏览:    关键词: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 A3Key_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输出高电平,灯灭}}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词