历史上的今天
今天是:2024年09月22日(星期日)
2021年09月22日 | 【STM32基础学习】八种GPIO模式总结
2021-09-22 来源:eefocus
八种IO模式再现
(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 复用推挽输出
解释速查
浮空输入_IN_FLOATING
浮空输入,通常用作KEY识别
带上拉输入_IPU
IO内部上拉电阻输入,默认电平是高
带下拉输入_IPD
IO内部下拉电阻输入,默认电平是低。
模拟输入_AIN
通常用作ADC模拟输入
开漏输出_OUT_OD
IO输出0 - GND,IO输出1 - 悬空(高阻态),需要外接上拉电阻,才能实现输出高电平。
可以读IO输入电平变化
开漏也可以用来连接不同电平的器件,匹配电平用的,具体实现方法就是上拉不同阻值的电阻然后接相应的电平。
推挽输出_OUT_PP
可做到真正的高低电平,且具有大的驱动能力。(拉灌电流能力强)IO输出0-GND, IO输出1 -VCC
复用功能的推挽输出_AF_PP
片内外设功能(I2C的SCL,SDA)
复用功能的开漏输出_AF_OD
片内外设功能(TX1,MOSI,MISO.SCK.SS)
所谓的复用:STM32的其他片上外设对GPIO引脚进行控制,此时GPIO引脚用作该外设功能的一部分,算作第二功能。
比如USART通信,把某个GPIO配置为USART串口复用功能,由串口外设控制该引脚,进行输入输出数据。
STM32的GPIO模式总结:
1、输入模式 (模拟,浮空,上拉,下拉)下,输出被禁止。
2、输出模式(推挽、开漏)下,输入仍然可用!
3、复用功能(推挽、开漏)下,输出寄存器(比如ODR)无效,输出源来自其他片内外设,输入仍然可用!
STM32的GPIO模式习惯用法:
RXD/按键,配置为浮空输入
ADC,配置为模拟输入
蜂鸣器与 LED ,配置为推挽输出
DHT11/模拟I2C,配置为开漏输出
TXD(USART属于片上外设) ,配置为复用推挽输出
参考
《STM32库开发实战指南 - 基于STM32F103 第二版》
另外一篇博客
正点原子一个提问
一个很好的资料链接:https://pan.baidu.com/s/16uAtBMX-Da5f8CMcUzhZTQ (提取码:rynt)
史海拾趣
|
在一个PROCESS中 能不能同时把握上升沿和下降沿 if clk\'event and clk=\'1\' then ,,,, elsif clk\'event and clk=\'0\' then… 查看全部问答> |
|
MSP-EXP430G2 LaunchPad FAQs1. Does the MSP-EXP430G2 support fuse blow?The MSP-EXP430G2 LaunchPad experimenter board onboard debugging interface lacks the JTAG security fuse-blow capability. To ensure firmware security on devices g ...… 查看全部问答> |
|
目前项目中用的是UC/OS-II,但是uC/OS-III都出来1年多了,想了解下。 最近在学习STM32F103VET6板子上移植UCOS-III 有没有群或朋友也在搞这个的朋友或群的呢? 我QQ316645339… 查看全部问答> |
|
今天用CF卡加载网络加载vxWorks镜像过程中遇到个问题,如下: 0xe66d9dc(tShell):dosFsLib.c:ERROR reading the device boot sector 0xe66d9dc(tShell):dosFsLib.c:media not formatted or not present 之后也能启动起来,但是当我在shell里输入 ...… 查看全部问答> |
|
几个概念:功率 灵敏度 (dBm dBmV dBuV)dBm=10log(Pout/1mW),其中Pout是以mW为单位的功率值dBmV=20log(Vout /1mV),其中Vout是以mV为单位的电压值dBuV=20log(Vout /1uV),其中Vout是以uV为单位的电压值 ...… 查看全部问答> |




