STM32F103实验二:按键控制LED亮灭代码
时间: 2024-09-23 14:02:40 浏览: 69
STM32F103实验二通常涉及基础硬件操作,如GPIO(通用输入输出)驱动LED灯,以及中断处理来响应按键输入。下面是一个简单的示例代码片段,用于说明如何通过按键控制LED的亮灭:
```c
#include "stm32f10x.h"
// 定义GPIO口和引脚
GPIO_InitTypeDef GPIO_InitStructure;
static GPIO_Pin_TypeDef LED_PIN = GPIO_Pin_0; //假设LED连接到PA0
static GPIO_Pin_TypeDef KEY_PIN = GPIO_Pin_1; //假设按键连接到PA1
void LED_ON(void) {
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA, LED_PIN); //点亮LED
}
void LED_OFF(void) {
GPIO_ResetBits(GPIOA, LED_PIN); //关闭LED
}
int main(void) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能PA口时钟
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //设置按键为上拉模式
GPIO_InitStructure.GPIO_Pin = KEY_PIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while (1) {
if (GPIO_ReadBit(GPIOA, KEY_PIN)) { //如果按键按下
LED_ON();
//... 可在此添加延时或其他操作
} else {
LED_OFF();
//... 当按键释放时,LED熄灭
}
}
return 0;
}
```
在这个例子中,当按键被按下时,LED会点亮;当按键松开时,LED则熄灭。注意实际项目中需要根据你的硬件配置调整相应的引脚和GPIO初始化设置。
阅读全文