stm32f103r6按键点亮led
时间: 2024-06-15 09:03:52 浏览: 117
STM32F103R6是一款基于ARM Cortex-M3内核的微控制器,它具有丰富的外设和功能,可以用于各种嵌入式应用。下面是按键点亮LED的基本步骤:
1. 配置GPIO引脚:首先,需要选择一个GPIO引脚作为按键输入引脚和LED输出引脚。可以使用STM32CubeMX工具进行引脚配置,或者手动编写代码进行配置。
2. 初始化按键:使用GPIO库函数或者直接操作寄存器的方式,将按键引脚配置为输入模式,并启用上拉或下拉电阻。
3. 初始化LED:同样地,将LED引脚配置为输出模式。
4. 编写主循环:在主循环中,不断检测按键状态。当按键被按下时,通过控制LED引脚的电平状态来点亮或熄灭LED。
下面是一个简单的示例代码:
```c
#include "stm32f1xx_hal.h"
int main(void)
{
// 初始化HAL库
HAL_Init();
// 配置GPIO引脚
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟
// 配置按键引脚
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// 配置LED引脚
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
while (1)
{
// 检测按键状态
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET)
{
// 按键被按下,点亮LED
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
}
else
{
// 按键未按下,熄灭LED
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
}
}
}
```
这是一个简单的示例代码,你可以根据实际需求进行修改和扩展。希望对你有所帮助!
阅读全文