stm32GPIO初始化

本文详细介绍了如何配置LED灯引脚为PB5,通过启用GPIOB时钟并设置GPIO_InitStructure结构体实现。同时,列举了GPIO的四种输入模式和四种输出模式,包括浮空输入、上拉输入、下拉输入、模拟输入以及开漏输出、复用开漏输出、推挽输出和复用推挽输出等模式。

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

//以led灯的为例,配置led灯引脚为PB5。
#ifndef _LED_H
#define _LED_H
#include "sys.h"

void LED_Init(void);

以上先定义led.h文件

再定义led.c文件

#include "led.h"

void LED_Init(void){
    //定义GPIO_InitStructure结构体变量,便于配置结构体内变量。
    GPIO_InitTypeDef GPIO_InitStructure;
    //使能端口B的时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,GPIO_Pin_5);
}

 

注意:4种输入模式

(1)GPIO_Mode_IN_FLOATING 浮空输入
(2)GPIO_Mode_IPU 上拉输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_AIN 模拟输入

2、4种输出模式 

(5)GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)
(6)GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)
(7)GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)
(8)GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)
 

 

### STM32 GPIO 初始化方法 对于STM32系列微控制器而言,GPIO初始化是一个基础却重要的过程。此过程中涉及多个步骤来确保引脚能够按照预期工作。 #### 使能时钟 任何外设的操作前都需要先开启其对应的时钟资源,在这里指的是GPIO端口的时钟。这一步骤通常通过调用`RCC_APB2PeriphClockCmd()`或针对不同版本芯片适用的相关API完成[^3]。 ```c // 开启GPIOB端口时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); ``` #### 配置引脚参数 接着定义一个`GPIO_InitTypeDef`类型的结构体实例,用来设置具体的引脚属性,比如模式(输入/输出)、速度等级等。此处以配置PB5作为推挽输出为例说明: ```c GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式 GPIO📐📐📐 ⚗📐📐GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; // PB5 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出最大频率为50MHz ``` #### 执行初始化 有了前面准备好的结构体之后,就可以利用它来进行真正的硬件初始化了。这是通过调用`GPIO_Init()`函数实现的,该函数接收两个参数——目标端口和已经填充好成员值的结构体指针。 ```c GPIO_Init(GPIOB, &GPIO_InitStructure); // 对GPIOB进行初始化 ``` #### 设置初始状态 最后还可以进一步设定引脚的具体高低电平状态,例如下面这段代码会把PB5拉低从而点亮连接在其上的LED灯泡。 ```c GPIO_ResetBits(GPIOB, GPIO_Pin_5); // 将PB5设置成低电平 ``` 以上就是基于STM32标准固件库的一个简单而完整的GPIO初始化流程介绍及其对应C语言源码片段展示。值得注意的是,具体细节可能会因所使用的开发环境、工具链以及特定型号有所差异,请参照官方文档获取最准确的信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mars@King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值