STM32 GPIO各个模式配置详解

 STM32各个GPIO口的配置与51相比较为复杂,为了更好的记忆和日后方便查阅,特此记录一下。

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = PIN;
GPIO_InitStructure.GPIO_Mode = MODE;
GPIO_InitStructure.GPIO_Speed = SPEED;

GPIO_Init(PORT, &GPIO_InitStructure);

GPIO口主要有两大功能,输出和输入。因为在STM32中有很多端口重映射,GPIO口也经常重映射成各外设的输出口,因此输出中又分为两大类:通用输出和复用功能映射;这两种里面都包括两种模式:推挽输出和开漏输出。输入功能则包括了四种模式:模拟输入、浮空输入、下拉输入、上拉输入

 一、输出

 1.推挽输出(GPIO_Mode_Out_PP)

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务:在输出高电平时,P-MOS管导通;低电平时,N-MOS管导通。两个管子轮流导通,一个负责灌电流,一个负责拉电流。

推挽输出的低电平为0v,高电平为3.3V。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

 2.开漏输出(GPIO_Mode_Out_OD)

输出低电平时,N-MOS管导通,使输出接地,若控制输出1(无法直接输出高电平),则既不输出高电平,也不输出低电平,为高阻态。正常使用时必须外接上拉电阻。

推挽输出一般用于输出电平为0V和3.3V的场合,而开漏输出一般用于电平不匹配的场合,如需要输出5V,就需要在外部接一个上拉电阻,电源为5V。

二、输入

1.模拟输入(GPIO_Mode_AIN)

模拟输入模式关闭了施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设

模块。如传送至ADC模块,由ADC采集电压信号。所以使用ADC外设时,必须设置为模拟输入模

式。常应用ADC模拟输入,或者低功耗下省电。

2.浮空输入模式(GPIO_Mode_IN_FLOATING)

在芯片内部既没有接上拉,也没有接下拉电阻。浮空输入状态下,IO的电平状态是不确定的,完全

由外部输入决定(输入达到条件就触发),如果在该引脚悬空的情况下,读取该端口的电平是不确

定的。

这种模式用于标准的通信协议如I2C、USART的接收端。

3.下拉输入(GPIO_Mode_IPD)

在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为0,低电平。只接受高电平!

4.上拉输入(GPIO_Mode_IPU)

在默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。只接受低电平!

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值