stm32的GPIO之标准库编程

STM32F10X GPIO 寄存器结构

GPIO_TypeDef和AFIO_TypeDef,在文件“stm32f10x_map.h”中定义如下:

typedef struct
{
vu32 CRL;
vu32 CRH;
vu32 IDR;
vu32 ODR;
vu32 BSRR;
vu32 BRR;
vu32 LCKR;
} GPIO_TypeDef;
typedef struct
{
vu32 EVCR;
vu32 MAPR;
vu32 EXTICR[4];
} AFIO_TypeDef;

GPIO初始化结构体变量

GPIO_InitTypeDef定义于文件 “stm32f10x_gpio.h” :

typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}
GPIO_InitTypeDef;

• GPIO_Pin
该参数选择待设置的GPIO管脚,使用操作符“|”可以一次选中
多个管脚。可以使用下表中的任意组合。
GPIO_Pin_None:无管脚被选中
GPIO_Pin_x:选中管脚x(0–15)
GPIO_Pin_All:选中全部管脚
• GPIO_Speed
用以设置选中管脚的速率。
GPIO_Speed_10MHz:最高输出速率10MHz
GPIO_Speed_2MHz:最高输出速率2MHz
GPIO_Speed_50MHz:最高输出速率50MHz
• GPIO_Mode
用以设置选中管脚的工作状态。
GPIO_Mode_AIN:模拟输入
GPIO_Mode_IN_FLOATING:浮空输入
GPIO_Mode_IPD:下拉输入
GPIO_Mode_IPU:上拉输入
GPIO_Mode_Out_OD:开漏输出
GPIO_Mode_Out_PP:推挽输出
GPIO_Mode_AF_OD:复用开漏输出
GPIO_Mode_AF_PP:复用推挽输出

GPIO编程套路

• 一、配置GPIO口
• 1. 使能管脚对应的GPIO组时钟
RCC_APB2PeriphClockCmd( GPIOx, ENABLE);
• 2. 定义一个初始化结构体型的变量
GPIO_InitTypeDef GPIO_InitStructure;
• 3. 对结构体变量的各成员赋值
GPIO_InitStructure.GPIO_Pin =;
GPIO_InitStructure.GPIO_Mode =;
GPIO_InitStructure.GPIO_Speed =;
• 4. 调用初始化函数,初始化GPIO
GPIO_Init(GPIO_Pin_n, &GPIO_InitStructure);
• 二、在主函数中,调用GPIO函数编程。

猜你喜欢

转载自blog.csdn.net/qq_46523260/article/details/106883503
今日推荐