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

相关推荐
木燚垚30 分钟前
基于STM32物联网水质监测系统的设计与实现/基于STM32的水产养殖云监控系统设计
stm32·单片机·嵌入式硬件·物联网·智能家居
QQ12971579403 小时前
51单片机 矩阵
单片机·嵌入式硬件·深度学习·算法·硬件工程·集成学习
Moonnnn.3 小时前
51单片机——汇编工程建立、仿真、调试全过程
汇编·笔记·嵌入式硬件·学习·51单片机
森焱森4 小时前
AArch64架构及其编译器
linux·c语言·单片机·架构
想要成为糕手。4 小时前
stm32-RTC时实时钟
stm32·嵌入式硬件·实时音视频
Czzzzlq6 小时前
STM32基础教程——对射式红外传感器计数实验
c语言·stm32·单片机·嵌入式硬件·mcu
集大周杰伦6 小时前
ARM Cortex-M 内存映射详解:如何基于寄存器直接读写 寄存器映射方式编码程序 直接操作硬件寄存器来控制 MCU
arm开发·stm32·单片机·内存映射·arm cortex-m·地址映射·寄存器编码
最爱是生活6 小时前
STM32之软件SPI
stm32·单片机·嵌入式硬件
summer__77777 小时前
3.3.2 用仿真图实现点灯效果
单片机·proteus
辰哥单片机设计9 小时前
STM32项目分享:STM32智能窗户
单片机·嵌入式硬件