stm32按键控制两盏led灯循环亮灭
时间: 2023-05-17 20:07:18 浏览: 163
stm32按键控制led
可以使用以下代码实现:
```c
#include "stm32f10x.h"
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置PB0和PB1为输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 配置PA0为输入模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while (1)
{
// 如果PA0按键被按下
if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_RESET)
{
// 循环亮灭两盏LED灯
GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_SET);
GPIO_WriteBit(GPIOB, GPIO_Pin_1, Bit_RESET);
for (int i = 0; i < 1000000; i++);
GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_RESET);
GPIO_WriteBit(GPIOB, GPIO_Pin_1, Bit_SET);
for (int i = 0; i < 1000000; i++);
}
else
{
// 如果PA0按键没有被按下,两盏LED灯都熄灭
GPIO_WriteBit(GPIOB, GPIO_Pin_0, Bit_RESET);
GPIO_WriteBit(GPIOB, GPIO_Pin_1, Bit_RESET);
}
}
}
```
这段代码可以让STM32控制两盏LED灯循环亮灭,当PA0按键被按下时,LED灯会循环亮灭,否则LED灯都熄灭。
阅读全文