GPIO输出-----点灯(输出)和按键(输入)

本文介绍了如何使用STM32的GPIO控制LED灯的亮灭,并通过按键进行输入检测。主要内容包括LED灯的GPIO初始化、宏定义、控制函数以及按键的GPIO初始化、状态检测。代码分析详细讲解了使能GPIO时钟、配置引脚模式以及使用GPIO读取输入电平等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
LED灯连接到STM32的GPIO引脚,可以通过控制低电平(0)点亮,高电平(1)熄灭。

编程要点

1).使能GPIO端口时钟
2).初始化GPIO目标引脚为推挽输出模式
3).编写简单的测试程序,控制GPIO引脚输出高、低电平

代码分析

1. LED灯引脚宏定义

将与硬件相关的部分使用宏来封装,这些定义存储在“led.h”文件中。

//R-红色
#define LED1_GPIO_PORT GPIOB
#define LED1_GPIO_CLK RCC_APB2Periph_GPIOB
#define LED1_GPIO_PIN GPIO_Pin_5
//G-绿色
#define LED2_GPIO_PORT GPIOB
#define LED2_GPIO_CLK RCC_APB2Periph_GPIOB
#define LED2_GPIO_PIN GPIO_Pin_0
// B-蓝色
#define LED3_GPIO_PORT GPIOB
#define LED3_GPIO_CLK RCC_APB2Periph_GPIOB
#define LED3_GPIO_PIN GPIO_Pin_1

以上是用代码把控制LED的GPIO端口、引脚以及GPIO端口时钟封装起来。
注: GPIO 时钟宏“RCC_APB2Periph_GPIOB”是 STM32 标准库定义的 GPIO 端口时钟相关的宏,是用于指示寄存器位的。
这里写图片描述
一共32bit,4bit控制一个位,如果使能AFIO时钟即是((uint32_t)0x00000001),如果使能GPIOB时钟即是((uint32_t)0x00000008)。这也就是控制寄存器的位,用宏定义封装即是

#define RCC_APB2Periph_AFIO              ((uint32_t)0x00000001)
#define RCC_APB2Periph_GPIOA             ((uint32_t)0x00000004)
#define RCC_APB2Periph_GPIOB             ((uint32_t)0x00000008)
#define RCC_APB2Periph_GPIOC             ((uint32_t)0x00000010)
#define RCC_APB2Periph_GPIOD             ((uint32_t)0x00000020)
#define RCC_APB2Periph_GPIOE             ((uint32_t)0x00000040)
#define RCC_APB2Periph_GPIOF             ((uint32_t)0x00000080)
#define RCC_APB2Periph_GPIOG             ((uint32_t)0x00000100)
#define RCC_APB2Periph_ADC1              ((uint32_t)0x00000200)
#define RCC_APB2Periph_ADC2              ((uint32_t)0x00000400)
#define RCC_APB2Periph_TIM1              ((uint32_t)0x000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值