我正在尝试为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);
}
}
}
将配置函数移至 while 循环之外。
然而,主要问题是没有延迟,因此您要以处理器所能达到的最快速度切换 LED,这比您的肉眼看到的速度还要快。