stm32f405按键控制LED灯
时间: 2023-09-04 22:13:28 浏览: 115
STM32F4054轴步进电机加减速控制工程源码.zip_9K4_XG4054_stm32f405_步进电机
5星 · 资源好评率100%
以下是一个基于STM32F405的按键控制LED灯的示例程序:
```
#include "stm32f4xx.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(GPIOD, GPIO_Pin_13);
Delay(1000000);
GPIO_ResetBits(GPIOD, GPIO_Pin_13);
Delay(1000000);
}
else
{
GPIO_ResetBits(GPIOD, GPIO_Pin_13);
}
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
void Delay(__IO uint32_t nCount)
{
while(nCount--)
{
}
}
```
该程序中,PA0引脚被配置为输入模式,接有一个按键,PD13引脚被配置为输出模式,接有一个LED灯。程序通过轮询PA0引脚的状态来控制LED灯的亮灭状态。
当按键按下时,PA0引脚的状态为高电平,此时程序将PD13引脚设置为高电平,LED灯亮起,延时一段时间后将PD13引脚设置为低电平,LED灯熄灭。当按键未按下时,PD13引脚始终为低电平,LED灯熄灭。
阅读全文