stm32按键控制led
时间: 2023-08-13 14:03:13 浏览: 68
好的,下面是一个简单的按键控制LED亮灭的STM32代码示例:
```c
#include "stm32f10x.h"
int main(void)
{
// 初始化GPIO口
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1)
{
// 检测按键状态
if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)
{
// 点亮LED灯
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET);
}
else
{
// 关闭LED灯
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET);
}
}
}
```
以上代码中,我们使用了GPIOA的0号引脚作为按键输入口,GPIOC的13号引脚作为LED输出口。在程序循环中,我们不断检测按键状态,如果检测到0号引脚被按下,则点亮LED灯;如果检测到0号引脚未被按下,则关闭LED灯。需要注意的是,我们在初始化GPIOA的0号引脚时使用了上拉输入模式,这样当按键未被按下时,该引脚的电平就是高电平,可以避免误触发。
阅读全文