01-01GPIO的理论知识

一、STM32上的GPIO引脚
1、GPIO
image
2、什么是GPIO?

  • GPIO是STM3232C8T6的一种片上外设,因为CPU不能直接控制引脚,需要借助片上外设进行控制。
    image
  • GPIO的特殊引脚:PB3,PB4,PA13,PA14,PA15,一般不调用为IO口,使用时需要进行重映射
  • GPIO的输入和输出
    image
    image
    3、GPIO的四种输出、四种输入模式
    (1)GPIO的输出模式
    image

(2)GPIO的输入模式
image

  • 上拉输入:VDD开关闭合,此时引脚默认高电压
  • 下拉输入:VSS开关闭合,此时引脚默认低电压
  • 浮空输入:VDD 和 VSS的开关都不闭合,引脚悬空,引脚电压极易受外界干扰,电压不确定
  • 注:当外部有电压输入时,引脚电压为外部输入的电压
    4、GPIO通用、复用
  • 通用、复用
    image
    5、IO的最大输出速度
  • IO的最大输出速度
    image
    image
    image
    image
  • 选取满足要求的最小值,过于陡峭的边沿会增加耗电,并引入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;

二、配套实验

posted @ 2025-10-17 16:35  有点闲  阅读(7)  评论(0)    收藏  举报