01-01GPIO的理论知识
一、STM32上的GPIO引脚
1、GPIO

2、什么是GPIO?
- GPIO是STM3232C8T6的一种片上外设,因为CPU不能直接控制引脚,需要借助片上外设进行控制。

- GPIO的特殊引脚:PB3,PB4,PA13,PA14,PA15,一般不调用为IO口,使用时需要进行重映射
- GPIO的输入和输出


3、GPIO的四种输出、四种输入模式
(1)GPIO的输出模式

(2)GPIO的输入模式

- 上拉输入:VDD开关闭合,此时引脚默认高电压
- 下拉输入:VSS开关闭合,此时引脚默认低电压
- 浮空输入:VDD 和 VSS的开关都不闭合,引脚悬空,引脚电压极易受外界干扰,电压不确定
- 注:当外部有电压输入时,引脚电压为外部输入的电压
4、GPIO通用、复用 - 通用、复用

5、IO的最大输出速度 - IO的最大输出速度




- 选取满足要求的最小值,过于陡峭的边沿会增加耗电,并引入EMI问题
6、
7、配置GPIO
点击查看代码
void GPIO_Init(void) //初始化IO引脚 示例:PC13
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启GPIOC的时钟
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO_InitTypeDef类型的结构体变量
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //选择要使用的I/O引脚,此处选择PC13引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚输出模式为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚的输出速度为50MHz
GPIO_Init(GPIOC,&GPIO_InitStructure); //调用初始化库函数初始化GPIOC端口
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET);
}
点击查看代码
//引脚编号
GPIO_Pin_0~GPIO_Pin_15
//模式
GPIO_Mode_Out_PP //通用输出推挽
GPIO_Mode_Out_OD //通用输出开漏
GPIO_Mode_AF_PP //复用输出推挽
GPIO_Mode_AF_OD //复用输出开漏
GPIO_Mode_IPU_ //输入上拉
GPIO_Mode_IPD_ //输入下拉
GPIO_Mode_IN_FLOATING //输入浮空
GPIO_Mode_AIN //模拟模式
//最大输出速度
GPIO_Speed_2MHz
GPIO_Speed_10MHz
GPIO_Speed_50MHz
//向IO引脚写0/1 示例:PC13
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);
//读取IO引脚0/1
GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13) == Bit_RESET;
GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13) == Bit_SET;
二、配套实验

浙公网安备 33010602011771号