×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-05-27 发布时间:
|

当初写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  输出配置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单