STM32按键控制led亮灭
时间: 2023-08-15 09:08:43 浏览: 90
可以使用STM32的GPIO模块来控制LED灯的亮灭,同时通过外部按键来控制LED的开关。以下是一个简单的代码示例:
```c
#include "stm32f10x.h"
int main(void)
{
// 初始化GPIO口
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while (1)
{
// 检测按键状态
if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0) == 0)
{
// 点亮LED灯
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
}
else if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0)
{
// 关闭LED灯
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_RESET);
}
}
}
```
以上代码中,我们使用了GPIOB的0和1号引脚作为按键输入口,GPIOA的5号引脚作为LED输出口。在程序循环中,我们不断检测按键状态,如果检测到0号引脚被按下,则点亮LED灯;如果检测到1号引脚被按下,则关闭LED灯。
阅读全文