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

相关推荐
知识分享小能手7 分钟前
C学习教程,从入门到精通,C语言单片机基础 — 完整知识点手册(19)
c语言·单片机·学习
Zw-awa14 分钟前
一只按键不只“按下”:短按、长按和连按如何共存
stm32
笨笨饿25 分钟前
#143_屏幕画撕裂的问题及解决方法
linux·stm32·单片机·嵌入式硬件·mcu·lvgl·嵌入式实时数据库
李永奉34 分钟前
杰理可视化SDK开发-音频录制功能使用教程
笔记·单片机·嵌入式硬件·mcu·物联网·音视频
_YouziTech_44 分钟前
【STM32+MAX98357】MP3转PCM存入Flash并控制音频输出
stm32·单片机·音视频·内存·pcm·i2s·wav
沐欣工作室_lvyiyi1 小时前
基于STM32的老人跌倒与防走失报警系统设计与实现(论文+源码)
stm32·单片机·嵌入式硬件
我叫洋洋1 小时前
Allegro 画布“垃圾显示“清理指南:把板子调成干净工作台(实战总结)
c语言·c++·单片机·嵌入式硬件·eda·嘉立创
xiangw@GZ1 小时前
SPI Flash 接口模式与 XIP 技术详解
单片机·嵌入式硬件
沐欣工作室_lvyiyi1 小时前
基于STM32的人体健康检测设计(论文+源码)
stm32·单片机·嵌入式硬件
艾络迅Acceleronix1 小时前
气象监测:STM32+EG800Z AT + 艾络迅平台实战|气压/光照/雨量采集全流程
stm32·单片机·嵌入式硬件·mcu·物联网·1024程序员节