STM32_GPIO_输入读取
  pbfHt7yP3Hym 2023年11月02日 48 0

使用步骤

1;开启相关IO时钟

2;初始化相关IO的模式   //模拟输入 浮空 上/下拉

3;配置函数的初始化调用和用GPIO_ReadInputDataBit();函数来获取IO状态

配置

#include "key.h" //引脚PA0 PC13

void key_init(void)

{ GPIO_InitTypeDef key1_GPIO_InitStruct;//按键1GPIO结构体名称

GPIO_InitTypeDef key2_GPIO_InitStruct; //按键1GPIO结构体名称

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启GPIOA的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//开启GPIOC的时钟

key1_GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;//GPIO模式选择  下拉
	key1_GPIO_InitStruct.GPIO_Pin|=GPIO_Pin_0;//GPIO引脚选择 用|不影响其他地方
GPIO_Init(GPIOA, &key1_GPIO_InitStruct);//gpio按键1初始化完成
	key2_GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;//GPIO模式选择  下拉
	key2_GPIO_InitStruct.GPIO_Pin|=GPIO_Pin_13;//GPIO引脚选择 用|不影响其他地方
GPIO_Init(GPIOC, &key2_GPIO_InitStruct);//gpio按键2初始化完成

}

头文件声明

#ifndef key_h

#define key_h

#include "define.h"//公共头文件

#define key1_start GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)

#define key2_start GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13)

void key_init(void);

#endif

函数使用

#include "define.h" // Device header

int main(void)

{ rgb_init();//LED初始化

key_init();//按键初始

LED_B_OFF;//LED初始灭

LED_R_OFF;//LED初始灭

LED_G_OFF;//LED初始灭

while(1)

{

if(key1_start)//获取KEY1电平

{

LED_B_OFF;

LED_R_ON;//点亮

LED_G_OFF;

}

if (key2_start&&(!key1_start))///获取KEY2电平

{

LED_B_OFF; LED_R_OFF; LED_G_OFF;//关闭LED

}

}

}



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  QtpjMRSUUfXb   2023年12月08日   49   0   0 引脚#include看门狗
  tprTMCWDkFAR   2023年12月07日   31   0   0 头文件#include初始化
  UYSNSBVoGd8R   2023年12月08日   26   0   0 引脚#include#define
pbfHt7yP3Hym