当初写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的第一课
上一篇:STM32中使用HAL库重定向printf()函数
下一篇:学习原子哥STM32M4(2):可以简化我们操作的位带操作
推荐阅读最新更新时间:2024-11-02 17:59
设计资源 培训 开发板 精华推荐
- 用于便携式医疗仪器的 ±5V 模拟放大
- 使用 ADA4077-2ARMZ-RL 双电源高精度放大器用于低功耗线性化 RTD 电路的典型应用电路
- 具有欠压锁定功能的 LT3973HMS 5V 降压转换器的典型应用
- 使用 Microchip Technology 的 LR745N3GP005 的参考设计
- MC9S12GN32 超可靠 16 位塔式® 系统模块
- 使用 TB62737FUG 升压 DC-DC 转换器用于 2 至 6 个白光 LED 驱动器的典型应用
- ADM00398,用于 16 位 MCU 系统的 ADC 评估板提供评估 MCP3911 双通道 ADC 性能的能力
- 【美岩电子制作】简易LCR仪表设计
- 使用 LTC2379CMS-18、18 位、1.6Msps SAR ADC 的典型应用
- 基于esp32的马路交通系统