STM32_GPIO

Posted 谏书稀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32_GPIO相关的知识,希望对你有一定的参考价值。

一、GPIO

GPI0是通用输入输出端口的简称,GPIO最基本的功能就输入和输出。它也是芯片内部与外部电路连接的唯一的接口。STM32是一个很复杂的系统,内部外设繁多,GPIO的基本功能满足不了这么多外设的需求,芯片厂商为了解决此问题,将GPI0分为八种模式(输入4种+输出4种)。

二、八种模式

  • 输入浮空 GPIO_Mode_IN_FLOATING
  • 输入上拉 GPIO_Mode_IPU
  • 输入下拉 GPIO_Mode_IPD
  • 模拟输入 GPIO_Mode_AIN
  • 具有上拉或下拉功能的开漏输出 GPIO_Mode_Out_OD
  • 具有上拉或下拉功能的推挽输出 GPIO_Mode_Out_PP(普通的高低电平输出)
  • 具有上拉或下拉功能的复用功能推挽 GPIO_Mode_AF_PP
  • 具有上拉或下拉功能的复用功能开漏 GPIO_Mode_AF_OD
    1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1。
    2、带上拉输入GPIO_IPU——IO内部上拉电阻输入。
    3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入。
    4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电。
    5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能。
    6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的。
    7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)。
    8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)。

三、配置步骤

  • 定义GPIO的初始化结构体类型
  • 使能GPIO的时钟
  • 配置GPIO的引脚
  • 配置GPIO口的输出类型为推挽
  • 配置GPIO口的输出速度
  • 初始化GPIO(初始化相应的寄存器)
void LED_Init()

	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	
    GPIO_InitStructure.GPIO_Pin=(GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStructure);


以上是关于STM32_GPIO的主要内容,如果未能解决你的问题,请参考以下文章

STM32入门笔记——GPIO的初始化

STM32入门笔记——GPIO的初始化

STM32单片机学习心得——GPIO使用GPIO做输入

在 stm32中如何判断管脚的状态呀·~。。能不能详细的写出来。 比如我要判断PA6是不是为高电平。。。还有字库

stm32 GPIO的八种工作模式

关于STM32 GPIO的上拉输入和下拉输入