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的主要内容,如果未能解决你的问题,请参考以下文章