STM32按键控制LED灯的代码
时间: 2023-11-19 21:01:03 浏览: 82
以下是一个简单的示例代码,使用STM32的GPIO控制按键和LED灯:
```
#include "stm32xxxx.h"
#define LED_PIN GPIO_Pin_13
#define LED_PORT GPIOC
#define BUTTON_PIN GPIO_Pin_0
#define BUTTON_PORT GPIOA
int main(void)
{
// 初始化LED引脚为输出模式
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = LED_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_PORT, &GPIO_InitStruct);
// 初始化按键引脚为输入模式
GPIO_InitStruct.GPIO_Pin = BUTTON_PIN;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(BUTTON_PORT, &GPIO_InitStruct);
while (1)
{
// 检测按键是否按下
if (GPIO_ReadInputDataBit(BUTTON_PORT, BUTTON_PIN) == 0)
{
// 点亮LED灯
GPIO_SetBits(LED_PORT, LED_PIN);
}
else
{
// 关闭LED灯
GPIO_ResetBits(LED_PORT, LED_PIN);
}
}
}
```
代码中使用`GPIO_InitTypeDef`结构体初始化LED和按键引脚。在主循环中,使用`GPIO_ReadInputDataBit`函数检测按键是否按下,如果按下则点亮LED灯,否则关闭LED灯。
阅读全文