一、GPIO的特点
- 多种功能的双向IO
- 多组端口(A、B、C、D、E、F、G)
- 每个端口共16位
- 标准IO口可承受5V电压
- IO口可吸纳25mA电流
- 可配置输出速度达到50MHz
- 多达16路模拟输入
一、GPIO硬件结构
二、GPIO的工作模式
三、GPIO初始化
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure; (1)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE) (2)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; (3)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; (4)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; (5)
GPIO_Init(GPIOA, &GPIO_InitStructure); (6)
}
(1)该语句定义了一个GPIO_InitTypeDef 结构体类型的变量,名为GPIO_InitStructure。
(2)该语句使能了GPIOA的时钟。
(3)该语句是把GPIO_Pin_4 赋给GPIO_InitStructure 结构体中的成员GPIO_Pin。
(4)该语句是将GPIO_Speed_50MHz赋给GPIO_InitStructure 结构体中的成员GPIO_Speed。
(5)该语句是把GPIO_Mode_Out_PP 赋给GPIO_InitStructure 结构体中的成员GPIO_Mode。
(6)该语句是调用GPIO_Init 函数,并将STM32 微控制器的GPIOA 设备地址和所定义的结构体变量GPIO_InitStructure 的地址传入。