这里我就单纯的展示下通过按键控制LED亮灭的方法,不考虑按键消抖和其他的问题。
话不多说直接展示代码:
#include "stm32f10x.h" // Device header
#define LED_PIN GPIO_Pin_5 // 假设LED连接到GPIOA的第5个引脚
#define BUTTON_PIN GPIO_Pin_1 // 假设按键连接到GPIOA的第1个引脚
// 初始化GPIO
void GPIO_Init1(void) {
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// 配置LED引脚为推挽输出
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置按键引脚为上拉输入
GPIO_InitStructure.GPIO_Pin = BUTTON_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
int main(void) {
GPIO_Init1(); // 初始化GPIO
while (1) {
if (GPIO_ReadInputDataBit(GPIOA, BUTTON_PIN) == 0) { // 检测按键是否按下
GPIO_WriteBit(GPIOA, LED_PIN, Bit_RESET); // 按键按下,LED亮起
} else {
GPIO_WriteBit(GPIOA, LED_PIN, Bit_SET); // 按键未按下,LED熄灭
}
}
}
代码仿真,运行结果如下:
希望这篇教程可以帮到你
标签:LED,亮灭,PIN,003,GPIOA,InitStructure,按键,GPIO From: https://blog.csdn.net/K_1271/article/details/143350776