STM32 GPIO配置 点亮LED灯

本次是基于STM32F407ZET6做一个GPIO配置,实现点灯实验。

新建文件

LED.c、LED.h文件,将其封装到Driver文件中。

双击Driver文件将LED.c添加进来

编写头文件,这里注意需要将Driver头文件声明一下。

在LED.c、main.c里面引入头文件LED.h

LED初始化

LED初始化就是对GPIO初始化。以后用到GPIO引脚都需要对其配置(按键KEY 蜂鸣器Buzzer)

LED_Init LED初始化 这里我们跟着库函数直接复制了。

找到STM32F407的库函数手册

将下面框住的部分复制到 LED.c中

定义结构体变量

复制代码
GPIO_InitTypeDef  GPIO_InitStructure;

配置时钟,对其GPIO引脚使用必须开启其对应的引脚时钟,这里开启的GPIO G族的时钟,因为led灯的引脚是GPIOG族的(根据电路原理图)

复制代码
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);

选择需要配置的引脚

这里需要看电路原理图,来知道小灯对应芯片的那个引脚

复制代码
GPIO_InitStructure.GPIO_Pin =;

Ctrl + F搜索LED1找到其位置,根据原理图得知,对应PG13引脚,也就是GPIO G族的13号引脚

这样我们就可以编写代码了,我们配置13号引脚使其点亮LED1灯。

复制代码
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

选择工作模式

这里选择输出模式

复制代码
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

对其F12 goto过去可以看到其工作模式的种类

GPIO_Mode_IN 输入模式

GPIO_Mode_OUT 输出模式

GPIO_Mode_AF 复用输入

GPIO_Mode_AN 模拟输入

选择输出模式

这里选择推挽输出

复制代码
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

跳转过去可以看到都有什么类型的输出模式

PP 推挽输出模式

OD 开漏输出模式

还有复用推挽和复用开漏模式。

选择输入模式

这里选择浮空输入。

复制代码
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

跳转过去可以看到都有什么输入模式

NOPULL 浮空

UP 上拉

DOWN 下拉

配置速度

配置高低电平切换的速度,这里为100MHz。

复制代码
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

跳转过去可以看到都有多少Hz的速度

底下是宏定义

2MHz Low_Speed 低速

25MHz Medium_Speed 中速

50MHz Fast_Speed 快速

100MHz High_Speed 高速

GPIO初始化

带Init后缀的全是初始化函数,这里是初始化GPIO G族的引脚。

复制代码
GPIO_Init(GPIOG, &GPIO_InitStructure);

点灯操作

根据电路图得知,引脚输出低电平时,LED灯才会亮起 因为左边接VDD3.3V属于高电势,LED0需要输出低电平才会产生电势差使电流流动。

我们这样配置完GPIO是默认输出低电平的,所以现在上电编译下载就会让LED1灯亮,但为了后续的模块操作,我们在初始化的时候将所有的灯关闭也就是全置为高电平。

GPIO_SetBits函数可以将引脚置高电平。

先将LED_Init在头文件里声明一下

然后我们在main.c里做电灯操作。

GPIO_ResetBits 函数可以将引脚置低电平

将LED_Init写到主函数里。

编译下载实现点亮LED1灯效果。

资源包:

百度网盘:KEIL

链接: https://pan.baidu.com/s/1DZZ_kP7jXLYeisntS9PZzA?pwd=6ujf 提取码: 6ujf

相关推荐
电鱼智能的电小鱼38 分钟前
服装制造企业痛点解决方案:EFISH-SBC-RK3588 预测性维护方案
网络·人工智能·嵌入式硬件·算法·制造
szxinmai主板定制专家2 小时前
基于ARM+FPGA的无人机数据采集卡,6通道24bit采集
arm开发·嵌入式硬件·fpga开发·无人机·能源
点灯小铭7 小时前
基于单片机的智能水箱温度液位控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计
沐欣工作室_lvyiyi11 小时前
基于物联网的体温心率监测系统设计(论文+源码)
单片机·物联网·毕业设计·体温心率检测
小莞尔14 小时前
【51单片机】【protues仿真】基于51单片机火灾报警系统
单片机·嵌入式硬件
qiuiuiu41315 小时前
正点原子RK3568学习日志-编译第一个驱动程序helloworld
linux·c语言·开发语言·单片机
易享电子15 小时前
基于单片机智能台灯(调光,时钟)系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
hazy1k15 小时前
51单片机基础-动态数码管显示
stm32·单片机·嵌入式硬件·51单片机
Heavy sea16 小时前
STM32 DMA直接存储器访问(寄存器与HAL库实现)
stm32·单片机
漫夜85516 小时前
MCU和GPIO (1)
单片机·嵌入式硬件