学习原子哥STM32M4(1):GPIO输出配置

发布者:HappyHearted最新更新时间:2019-05-10 来源: eefocus关键字:STM32M4  GPIO  输出配置 手机看文章 扫描二维码
随时随地手机看文章

当初写51感觉IO口输出配置很简单,直接写入16进制数就可以了,而当我开始学STM32时我便发现了STM32的IO的强大之处,复用功能也很厉害。这里写一下贴一下我在学习GPIO输出的心得。


以为本人能力有限,理解可能有误,希望各位大虾包容包容,在评论区指出我的错误

GPIO_InitTypeDef GPIO_InitST;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);

GPIO_InitST.GPIO_Pin=GPIO_Pin_2;

GPIO_InitST.GPIO_Mode=GPIO_Mode_OUT;

GPIO_InitST.GPIO_OType=GPIO_OType_PP;

GPIO_InitST.GPIO_PuPd=GPIO_PuPd_DOWN;

GPIO_InitST.GPIO_Speed=GPIO_Speed_100MHz;

GPIO_Init(GPIOB,&GPIO_InitST);

GPIO_ResetBits(GPIOB,GPIO_Pin_2);


这段代码是蜂鸣器的,下面一段是LED的。

GPIO_InitTypeDef GPIO_InitST;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);

GPIO_InitST.GPIO_Pin=GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12|GPIO_Pin_11;

GPIO_InitST.GPIO_Mode=GPIO_Mode_OUT;

GPIO_InitST.GPIO_OType=GPIO_OType_PP;

GPIO_InitST.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_InitST.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOE,&GPIO_InitST);

GPIO_SetBits(GPIOE,GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12|GPIO_Pin_11);


我们可以发现共同之处。

首先他们都是GPIO配置成输出模式


GPIO_InitTypeDef GPIO_InitST;

定义一个函数GPIO_InitST,这个名字是自己定义的,它的作用是参数结构体指针

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);

这个是使能时钟,因为GPIOA-G都是在AHB1下的,所以我们要使能AHB1

而后面那一段代码则是我们定义的结构体的成员变量

GPIO_InitST.GPIO_Pin

指定针脚,因为我们之前使能时钟时便指定了是GPIOE,所以这里的成员变量是在指定E的针脚

GPIO_InitST.GPIO_Mode

配置GPIO的模式为输出输入模式,OUT为输出,IN为输入,如果我们用键盘输入的话这里就要写成IN

AIN模拟输入

FLOATING浮空输入

IPD下拉输入

IPU上拉输入

OD开漏输出

PP推挽输出

AF_OD复用开漏输出

AF_PP复用推挽

GPIO_InitST.GPIO_OType

OType即Output Type?(本人猜测的),配置输出类型

所以只有PP OD两种

GPIO_InitST.GPIO_PuPd

配置上下拉,有三种

GPIO_PuPd_NOPULL 

GPIO_PuPd_UP     GPIO_PuPd_DOWN 

GPIO_InitST.GPIO_Speed

配置IO口速度,有2 25 50 100MHz四种

GPIO_Init();

初始化GPIO,有两个参数,第一个是哪一组IO,GPIOE,就是E,第二个就是取我们定义的那个结构体的地址,可以知道我们怎么配置的

以上都是我们配置IO口时的参数,也是学习STM32的第一课

关键字:STM32M4  GPIO  输出配置 引用地址:学习原子哥STM32M4(1):GPIO输出配置

上一篇:STM32中使用HAL库重定向printf()函数
下一篇:学习原子哥STM32M4(2):可以简化我们操作的位带操作

推荐阅读最新更新时间:2024-11-02 17:59

如何为LED切换配置GPIO
2.1目标 了解如何使用硬件抽象层 (HAL) 库切换 STM32L476 Nucleo 板上的引脚,并了解如何在 STM32CubeIDE 中设置引脚和 GPIO 端口。 2.2在STM32CubeIDE中创建工程↑ ‘主面板中的文件》新建》 STM32 项目。 此示例使用 NUCLEO-L476RG 板。 首先使用 板选择器 选择 NUCLEO-L476RG板,如下图所示: 如果您还没有下载 STM32L476 Cube 库,它会自动下载。然而,这可能需要一些时间。 保存项目。 然后您将看到一个弹出窗口,询问您是否要将外围设备初始化为它们的默认配置。 无需配置任何外设,因为仅使用核心/闪存/SRAM(默认外设)。
[单片机]
如何为LED切换<font color='red'>配置</font><font color='red'>GPIO</font>
LPC1768之GPIO流水灯的实验例程
**************************************** Copyright (c) CaKen ************************************ ******************************************************** **文件名 : main.c **作者 : CaKen **版本号 : V1.0 **时间 : 2014.08.13 **功能描述 : GPIO实验测试 ******************************************************** ***********
[单片机]
STM32之中断与事件---一个使用GPIO作为外部中断的示例
1.GPIO的正确设置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitSt
[单片机]
arm7单片机编程实例,ARM7之输入/输出端口GPIO编程教程
  一、输入/输出端口GPIO编程   一—(01)、一位数码管静态显示(通过74HC595实现)   1、管脚连接模块   首先介绍一下LPC2106的相关的管脚~~   特性:可以实现独立的管脚配置   应用:管脚连接模块的用途是将管脚配置为需要的功能(这一章节主要就是介绍GPIO功能~~别的会在接下来的章节中分别予以介绍~~)   描述:管脚连接模块可以使所选管脚具有一个以上的功能。配置寄存器控制多路开关来连接管脚与片内外设。外设在激活和任何相关只读使能之前必须连接到适当的管脚。任何使能的外设功能如果没有映射到相应的管脚,则被认为是无效的。   寄存器的描述:   管脚连接模块包括两个寄存器:   管脚功能
[单片机]
arm7单片机编程实例,ARM7之输入/<font color='red'>输出</font>端口<font color='red'>GPIO</font>编程教程
STM32单片机GPIO配置模式
1. 操作GPIO的意义 我们在学习单片机的时候,一般都是从操作GPIO开始的,很多单片机学习的教程第一课就是点亮发光二极管或者是流水灯。所以对于初学者而言,及时掌握单片机的GPIO口是一件具有里程碑意义的事情。今天以STM32单片机为例,简单看一下GPIO口。 2. STM32单片机GPIO的配置模式 STM32单片机的GPIO最有8组,分别为A,B,C,D,E,每组有0-15共16个。可以配置为8中模式: 3. 相关寄存器 配置GPIO相关的寄存器有如下几个: 1.端口配置低寄存器:(GPIOx_CRL) (x=A..E) 2.端口配置高寄存器:(GPIOx_CRH) (x=A..E) 3.端口输入数据寄存器:(GPI
[单片机]
STM32单片机<font color='red'>GPIO</font>的<font color='red'>配置</font>模式
STM32 GPIO 简单操作函数
STM32库函数太多,而且不能识别大小写,经常记错,GPIO简单记忆。 ---第一步--模式配置 void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //对应GPIO所在的总线时钟必须打开 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //哪个GPIO口 GPIO_In
[单片机]
GPIO(一)汇编程序
view plain copy print ? @****************************************************************************** @ 功能:LED点灯程序,点亮LED1-4 @****************************************************************************** .text .global _start _start: LDR R0,=0x56000010 @
[单片机]
<font color='red'>GPIO</font>(一)汇编程序
Linux下s3c6410的GPIO操作(3)
1、接着上一篇 上一篇说到s3c64xx_gpiolib_add函数中的s3c_gpiolib_add(chips)这个函数了,并对这个函数进行了分析,但还没分析完,这篇接着分析, /* gpiochip_add() prints own failure message on error. */ ret = gpiochip_add(gc);这个函数是上一篇中分析的重点 if (ret = 0) s3c_gpiolib_track(chip);这次要分析的函数,先列出源码,如下所示: struct s3c_gpio_chip *s3c_gpios ;在下面用到。 static __init void s3c_gpiol
[单片机]
Linux下s3c6410的<font color='red'>GPIO</font>操作(3)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved