关于STM32的GPIO模式配置
2014-07-03 21:22
429 查看
在STM32里,对于GPIO的配置种类有8种之多:
(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出
平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种。
看了各种零零散散的资料以后,在这里做一个简单总结:
关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:
左边为推挽输出,原理就不解释了。右边的则可以理解为开漏输出形式,需要接上拉,开漏输出可以作为电流型输出,提高带载能力,但需要外接电源。
浮空输入:对于浮空输入,可以理解为IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
上拉输入:就是外接VCC和上拉电阻,上拉电阻同时限流;
下拉输入:外接下拉电阻然后接地,下拉电阻同时限流;
如下图,要检测按键是否按下:
KEY0、 KEY1 和 KEY2 是低电平有效的,而 WK_UP 是高电平有效的,并且外部都没有上下拉电阻,所以,需要在 STM32 内部设置上下拉。很容易知道,WK_UP所对应管脚应该设置为下拉输入,而其他引脚设置为上拉输入。(低电平有效设置为上拉输入,高电平有效设置为下拉输入)
模拟输入:就是传统输入方式,输入的是一个模拟量,通常可用作ADC输入。
复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
例如:当使用stm32串口通信时USART1_TX使用复用推挽输出,USART1_RX使用浮空输入
对USART1_TX:因为是串口不在时普通的IO口所以复用,因为没接上拉电阻所以推挽,因为TX为发送数据端口所以输出。所以为复用推挽输出。
对USART1_RX:因为接收数据,所以浮空输入。
最后总结下使用情况:
在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,串口RX1
(2)上拉输入_IPU——IO外部上拉电阻输入
(3)下拉输入_IPD—— IO外部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(TX1,I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(MOSI,MISO.SCK.SS)
注:有参考百度文库、原子的stm32开发指南等各处资料。
(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode_Out_OD 开漏输出
(6)GPIO_Mode_Out_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出
平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种。
看了各种零零散散的资料以后,在这里做一个简单总结:
关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:
左边为推挽输出,原理就不解释了。右边的则可以理解为开漏输出形式,需要接上拉,开漏输出可以作为电流型输出,提高带载能力,但需要外接电源。
浮空输入:对于浮空输入,可以理解为IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
上拉输入:就是外接VCC和上拉电阻,上拉电阻同时限流;
下拉输入:外接下拉电阻然后接地,下拉电阻同时限流;
如下图,要检测按键是否按下:
KEY0、 KEY1 和 KEY2 是低电平有效的,而 WK_UP 是高电平有效的,并且外部都没有上下拉电阻,所以,需要在 STM32 内部设置上下拉。很容易知道,WK_UP所对应管脚应该设置为下拉输入,而其他引脚设置为上拉输入。(低电平有效设置为上拉输入,高电平有效设置为下拉输入)
模拟输入:就是传统输入方式,输入的是一个模拟量,通常可用作ADC输入。
复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
例如:当使用stm32串口通信时USART1_TX使用复用推挽输出,USART1_RX使用浮空输入
对USART1_TX:因为是串口不在时普通的IO口所以复用,因为没接上拉电阻所以推挽,因为TX为发送数据端口所以输出。所以为复用推挽输出。
对USART1_RX:因为接收数据,所以浮空输入。
最后总结下使用情况:
在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,串口RX1
(2)上拉输入_IPU——IO外部上拉电阻输入
(3)下拉输入_IPD—— IO外部下拉电阻输入
(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(TX1,I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(MOSI,MISO.SCK.SS)
注:有参考百度文库、原子的stm32开发指南等各处资料。
相关文章推荐
- 关于STM32 PB3 PB4 如何设置成普通GPIO的配置
- STM32 GPIO口模式配置
- STM32的GPIO输入输出模式配置
- 关于STM32中GPIO的8种工作模式
- STM32之GPIO端口输入模式配置举例
- 关于MT7621配置引脚为GPIO模式的设置
- 关于STM32的几种输入模式以及外部中断的配置
- 关于STM32 PB3 PB4 如何设置成普通GPIO的配置
- STM32的GPIO口的8种配置模式
- 关于STM32中GPIO的8种工作模式
- STM32的GPIO口的8种配置模式
- STM32的GPIO口的8种配置模式
- STM32之GPIO的8种配置模式
- 关于STM32 PB3 PB4 如何设置成普通GPIO的配置
- STM32中GPIO的8种工作模式
- STM32 GPIO 配置之ODR, BSRR, BRR 详解
- 关于stm32的GPIO复用
- STM32下载模式的配置
- stm32 GPIO配置以及什么时候用 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU
- STM32中GPIO的8种工作模式