STM32f103使用GPIO实现按键输入

1. 首先通过GPIO_Configuration()函数初始化GPIOA和GPIOC的引脚配置,PA0作为按键输入,PC13作为LED输出,其中PA0使用上拉输入模式,PC13使用推挽输出模式。2. 在主函数中,使用while循环不断读取GPIOA的输入状态,如果检测到PA0引脚为高电平(即按键按下),则点亮PC13引脚(即LED亮),否则熄灭PC13引脚(即LED灭)。if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) //判断按键是否按下。
摘要由CSDN通过智能技术生成

一、硬件层面原理

  在STM32F103中,GPIO控制器负责控制引脚的输入和输出状态,实现对按键输入的检测和控制。

  按键通常被连接到微控制器的输入引脚上,以便检测按键的状态。当按键被按下时,引脚的电平将变为低电平,当按键未被按下时,引脚的电平将为高电平。因此,我们需要通过检测引脚电平来确定按键是否被按下。

  在STM32F103中,GPIO控制器可以将引脚设置为输入模式,以便检测引脚电平。此外,为了避免引脚电平因为没有连接外部电路而漂移,可以启用上拉或下拉电阻。在使用上拉电阻时,当引脚没有连接到任何外部电路时,引脚的电平将被拉高。当按键按下时,引脚电平将变为低电平,可以通过检测IDR寄存器的值来检测按键状态。

  因此,我们需要连接按键到输入引脚,并在GPIO控制器中设置引脚为输入模式,并启用上拉或下拉电阻。这样,当按键按下时,引脚电平将变为低电平,可以通过检测IDR寄存器的值来检测按键状态。

二、代码实现

#include "stm32f10x.h"

void GPIO_Configuration(void);
void Delay(__IO uint32_t nCount);

int main(void)
{
    GPIO_Configuration();

    while (1)
    {
        if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)) //判断按键是否按下
        {
            GPIO_SetBits(GPIOC, GPIO_Pin_13); //点亮LED灯
        }
        else
        {
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值