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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

window保存好看的桌面壁纸

1、按下【WINR】快捷键调出“运行”窗口,输入以下命令后回车。 %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 2、依次点击【查看】【显示】,勾选【隐藏的项目】,然后按【CtrlA】全部…

TCP 三次握手四次挥手

目录 TCP 三次握手 1. SYN (Synchronize:同步) 2. SYN-ACK (Synchronize Acknowledge:同步确认) 3. ACK (Acknowledge:确认) 为什么是三次而不是两次或四次? 三次握手的作用 TCP 四次挥手 第一次挥手:客户端发送 FIN …

C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】

1. 题目描述 牛客网在线OJ链接 Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。 输入描述:Lily使用的图片包括 “A…

MVCC底层原理实现

MVCC的实现原理 了解实现原理之前,先理解下面几个组件的内容 1、 当前读和快照读 先普及一下什么是当前读和快照读。 当前读:读取数据的最新版本,并对数据进行加锁。 例如:insert、update、delete、select for update、 sele…

python实现http文件服务器访问下载

//1.py import http.server import socketserver import os import threading import sys# 获取当前脚本所在的目录 DIRECTORY os.path.dirname(os.path.abspath(__file__))# 设置服务器的端口 PORT 8000# 自定义Handler,将根目录设置为脚本所在目录 class MyHTT…

Cpp::静态 动态的类型转换全解析(36)

文章目录 前言一、C语言中的类型转换二、为什么C会有四种类型转换?内置类型 -> 自定义类型自定义类型 -> 内置类型自定义类型 -> 自定义类型隐式类型转换的坑 三、C强制类型转换static_castreinterpret_castconst_castdynamic_cast 四、RTTI总结 前言 Hell…

2024年终总结:技术成长与突破之路

文章目录 前言一、技术成长:菜鸟成长之路1. 学习与实践的结合2. 技术分享与社区交流 二、生活与事业的平衡:技术之外的思考1. 时间管理与效率提升2. 技术对生活的积极影响 三、突破与展望:未来之路1. 技术领域的突破2. 未来规划与目标 四、结…

ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载

AI修复老照片,试试吧,不一定好~~哈哈 2023年4月曾用过ComfyUI,当时就感慨这个工具和虚幻的蓝图很像,以后肯定是专业人玩的。 2024年我写代码去了,AI做图没太关注,没想到,现在ComfyUI真的变成了工…

思科交换机telnet配置案例

目录 1.telnet简述2.网络拓扑3.设备说明4.网络配置4.1 电脑PC ip设置4.2 网络交换机telnet配置 5.小结 1.telnet简述 Telnet是远程登录服务的一个协议,该协议定义了远程登录用户与服务器交互的方式。它允许用户在一台联网的计算机上登录到一个远程分时系统中&#…

WPS数据分析000006

一、排序 开始→ 排序 同文件→选项→自定义序列→输入序列 二、筛选 高级筛选 条件区域要与列表区域一样。 三、条件格式

vofa++使用方法

控件区可以添加控件用来啊多样显示 点击一个控件然后右键可以选择要添加显示的数据,点all表全部显示, 点auto可以自动布局 要用控件需要选择协议,不知道协议具体格式可以点击问号看看,并且最好用printf重定义来实现 比如我要实现F…

达梦拷贝DM_HOME的复制安装

近期一个项目需求,需要在没有安装包的情况下,将达梦数据库安装到虚机上(生产机上安装了达梦),故采用直接打包生产机DM_HOME的方式拷贝至虚机,再依次执行达梦的部分指令完成安装。以下为验证的步骤&#xff…

ui文件转py程序的工具

源博客连接: PyCharm中利用外部工具uic转成的py文件,里面全是C代码,并非python类型的代码,导致大量报错。。。_pyside6-uic为什么把ui转为了c-CSDN博客 如果想把ui文件转为py文件,首先设置pycharm的外部工具&#xf…

hedfs和hive数据迁移后校验脚本

先谈论校验方法,本人腾讯云大数据工程师。 1、hdfs的校验 这个通常就是distcp校验,hdfs通过distcp迁移到另一个集群,怎么校验你的对不对。 有人会说,默认会有校验CRC校验。我们关闭了,为什么关闭?全量迁…

61,【1】BUUCTF WEB BUU XSS COURSE 11

进入靶场 左边是吐槽,右边是登录,先登录试试 admin 123456 admiin# 123456 admin"# 123456 不玩了,先去回顾下xss 回顾完就很尴尬了,我居然用SQL的知识去做xss的题 重来 吐槽这里有一个输入框,容易出现存储型…

海外问卷调查如何影响企业的经营?在品牌建设中有何指导意义?

市场调查的定义:通过科学的方法,有目的地、系统地搜集整理一些市场信息,其目的在于了解当下市场现状和发展前景,为企业生产和品牌打造提供一些科学的指导意见,这是任何大企业、中小企业、初创企业都必须重视的一个重要…

STM32新建不同工程的方式

新建工程的方式 1. 安装开发工具 MDK5 / keil52. CMSIS 标准3. 新建工程3.1 寄存器版工程3.2 标准库版工程3.3 HAL/LL库版工程3.4 HAL库、LL库、标准库和寄存器对比3.5 库开发和寄存器的关系 4. STM32CubeMX工具的作用 1. 安装开发工具 MDK5 / keil5 MDK5 由两个部分组成&#…

idea maven本地有jar包,但还要从远程下载

idea 中,java 工程执行 maven reimport,报jar报无法下载。 我奇了个怪,我明明在本地仓库有啊,你非得从远程下载? 我从供应商那里拿来的,远程当然没有了。 这太奇葩了吧,折腾好久不行。 后来…

250125-package

1. 定义 包就是文件夹,作用是在大型项目中,避免不同人的编写的java文件出现同名进而导致报错;想象一个场景,在一个根目录中,每一个人都有自己的一个java文件夹,他可以将自己编写的文件放在该文件夹里&…

系统思考—动态问题分析

“不是解决问题,而是根本改变它的方式,才能真正创造持久的成功。”——彼得德鲁克 在很多情况下,企业面对问题时,总会急于寻找解决方案,但这些方案往往只是暂时的“应急措施”。它们看似有效,却难以从根本…