为什么按下按钮时 LED 不闪烁?

问题描述 投票:0回答:1

我正在尝试为stm32f401cb编写一个代码,当我按下LED时,它会闪烁LED,当我离开按下按钮时,它会熄灭LED。我已经设置了通道ahb1,它连接到我的微处理器中的端口a和b f401cb 和我在端口 a 选择下拉输入类型,LED 连接到端口 b。

但是我的 LED 无论如何都没有闪烁。

你认为我的错误在哪里?

当我按下按钮时,我的 LED 灯不闪烁。它总是熄灭

#include "stm32f4xx.h"

void ahb1_config(void) {
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
}

void gpio_config(void) {
    GPIO_InitTypeDef gpio_init;
    gpio_init.GPIO_Mode=0x00;
    gpio_init.GPIO_Pin=GPIO_Pin_0 ;
    gpio_init.GPIO_OType=0x00;
    gpio_init.GPIO_PuPd=0x02;
    gpio_init.GPIO_Speed=0x03;
    GPIO_Init(GPIOA,&gpio_init);

    gpio_init.GPIO_Mode=GPIO_Mode_OUT;
    gpio_init.GPIO_Pin=GPIO_Pin_0 ;
    gpio_init.GPIO_OType=GPIO_OType_PP;
    gpio_init.GPIO_Speed=GPIO_Speed_100MHz;
    GPIO_Init(GPIOB,&gpio_init);


}







int main(void)
{







  while (1)
  {
        ahb1_config();
        gpio_config();
        if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)) {
            GPIO_SetBits(GPIOB,GPIO_Pin_0);
        }
        else {
            GPIO_ToggleBits(GPIOB,GPIO_Pin_0);
        }

  }
}

stm32 stm32f4
1个回答
0
投票

将配置函数移至 while 循环之外。

然而,主要问题是没有延迟,因此您要以处理器所能达到的最快速度切换 LED,这比您的肉眼看到的速度还要快。

© www.soinside.com 2019 - 2024. All rights reserved.