STM32中使用GPIO的总结(超强) 下载本文

内容发布更新时间 : 2024/5/22 14:46:02星期一 下面是文章的全部内容请认真阅读。

STM32 GPIO使 用

操作步骤:

使能GPIO对应的外设时钟

例如:/使能GPIOA GPIOB GPIOC对应的外设时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC , ENABLE);

声明一个 GPIO_InitStructure结构体 例如:

GPIO」ni tTypeDef GPIO_I nitStructure;

选择待设置的GPIO管脚 例如:/*选择待设置的GPIO

7

& 9管脚位,中间加“|符号*/

GPIO InitStructure.GPIO Pin = GPIO Pin 7 | GPIO Pin 8 | GPIO Pin 9; 4. 设置选中GPIO管脚的速率

例如:/*设置选中GPIO管脚的速率为最高速率2MHz */

GPIO」nitStructure.GPIO_Speed = GPIO_Speed_2MHz;〃 最高速率 2MHz 5. 设置选中GPIO管脚的模式

例如:/*设置选中GPIO管脚的模式为开漏输出模式*/

GPIO」nitStructure.GPIO_Mode = GPIO_Mode_Out_OD// 开漏输出模式

1 / 15

6. 根据GPIO_InitStructure中指定的参数初始化外设GPIOX

例如:/*根据GPIOInitStructure中指定的参数初始化外设 GPIOC */

GPI O」ni t(GPIOC, & GPIO_I nitStructure); 7?其他应用

例:将端口 GPIOA的

0、15脚置1 (高电平)

GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15); 例:将端口0、15脚置0 (低电平)

GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15); GPIO寄存器: 寄存器 描述

CRL 端口配置低寄存器 CRH 端口配置高寄存器 IDR 端口输入数据寄存器 ODR 端口输出数据寄存器

BSRR 端口位设置/复位寄存器 BRR 端口位复位寄存器

LCKR 端口配置锁定寄存器 EVCR 事件控制寄存器 MAPR 复用重映射和调试 I/O

配置寄存器

2 / 15

GPIOA的 EXTICR外部中断线路0-15配置寄存器 GPIO库函数:

函数名

描述

将外设GPIOx寄存器重设为缺省值

GPIO_DeInit

GPIO_AFIODel nit将复用功能(重映射事件控制和 EXTI设置)重设为缺省 值GPIO_Init

器 GPIO_Structlnit

根据GPIO」nitStruct中指定的参数初始化外设 GPIOx寄存

把GPIO_InitStruct中的每一个参数按缺省值填入

GPIO_Readl nputDataBit读取指定端口管脚的输入

GPIO_Read In putData

读取指定的GPIO端口输入

GPIO_ReadOutputDataBit 读取指定端口管脚的输出 GPIO_ReadOutputData 读取指定的GPIO端口输出 GPIO_SetBits GPIO_ResetBits GPIO_WriteBit GPIO_Write

GPIO_Pi nLockCo nfig GPIO_Eve ntOutputCo nfig

GPIO_Eve ntOutputCmd

设置指定的数据端口位 清除指定的数据端口位

设置或者清除指定的数据端口位 向指定GPIO数据端口写入数据 锁定GPIO管脚设置寄存器 选择GPIO管脚用作事件输出

使能或者失能事件输出

GPIO_Pi nRemapCo nfig 改变指定管脚的映射

GPIO_EXTILi neCo nfig 选择GPIO管脚用作外部中断线路

库函数:

函数 GPIO DeInit

3 / 15