按钮按一下灯亮再按一下灯stm32实验
时间: 2024-09-18 11:08:23 浏览: 18
在STM32单片机实验中,实现按钮按下灯亮的功能通常涉及硬件连接和软件编程两个步骤。以下是基本的步骤:
**硬件连接:**
1. 连接LED(发光二极管)到GPIO输出引脚,作为指示灯。
2. 连接按钮到STM32的输入引脚,通常是数字输入,如PA0或PB0等。
**软件编程(C语言示例):**
```c
#include "stm32f1xx.h" // 引入STM32的头文件
// 定义GPIO口和引脚
GPIO_InitTypeDef GPIO_InitStructure;
static GPIO_TypeDef* LED_GPIO = GPIOA; // LED所在的GPIO
#define LED_PIN GPIO_Pin_0 // LED连接的引脚编号
void LedInit(void) {
RCC_AHB1PeriphClockCmd(LED_GPIO->供给电压的RCC_AHB1Periph_AHB1Periph_GPIOA, ENABLE); // 启动GPIOA时钟
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 输出推挽模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_GPIO, &GPIO_InitStructure);
}
int ButtonRead(GPIO_TypeDef* GPIOx, uint16_t Pin) { // 针对STM32读取按钮状态的函数
return GPIO_ReadInputDataBit(GPIOx, Pin);
}
int main(void) {
LedInit(); // 初始化LED
while (1) { // 无限循环
if (!ButtonRead(LED_GPIO, LED_PIN)) { // 如果按钮没按下
GPIO_SetBits(LED_GPIO, LED_PIN); // 点亮LED
} else { // 按钮按下
GPIO_ResetBits(LED_GPIO, LED_PIN); // 关闭LED
}
}
return 0;
}
```