STM32 GPIO的几种工作模式

介绍STM32 GPIO的几种工作模式

1、输出模式

STM32的引脚输出有两种方式:

1、推挽输出

2、开漏输出

1.1 推挽输出

当引脚设置为推挽输出时,P-MOS和N-MOS共同配合工作。

当使用HAL库

c 复制代码
//该函数的作用就是将P-MOS导通,N-MOS关闭
HAL_GPIO_WritePin(XXX, XXX, 1);
c 复制代码
//该函数的作用就是将P-MOS关闭,N-MOS导通
HAL_GPIO_WritePin(XXX, XXX, 0);

如上图,当led1的一端接地,另一端接stm32的一个引脚,此时我们可以用推挽输出,输出高低电平来控制小灯的亮灭。

1.2、开漏输出

开漏输出下,只有N-MOS工作,P-MOS一直处于断开状态。

c 复制代码
//N-MOS断开
HAL_GPIO_WritePin(XXX, XXX, 1);

整个IO口内部处于高阻态,或者说断路,不对外输出电平。

c 复制代码
//N-MOS导通
HAL_GPIO_WritePin(XXX, XXX, 0);

IO口对外输出低电平。

如上图,当led2的一端接5v,另一端接在mcu的引脚上。我们可以使用开漏输出控制小灯的亮灭。当write 1时,断路,小灯灭。write 0 时小灯左侧接地右侧接5v,亮。

1.3、输出模式总结

1、推挽输出小灯是由来自芯片的电压所驱动。

2、开漏输出没有驱动能力,必须依靠外部的电压源来进行驱动小灯亮灭。

推挽输出 开漏输出
高电平 P-MOS激活、N-MOS断开,3.3V P-MOS断开、N-MOS断开
低电平 P-MOS断开、N-MOS激活 P-MOS断开、N-MOS激活
优点 可直接输出3.3v 配合外部电路,更加灵活
缺点 只能输出3.3v 高电平实际是高阻态,无法输出电流

2、输入模式

框图如下:

1、外部电流经引脚向内流入首先经过一对上下拉电阻。继续前进会经过肖特基触发器,或者说斯密特触发器。其作用是稳定电平。

2、斯密特触发器:会有高参考电压和低参考电压。当高于高参考电压会被单片机认为是高电平1,低于低参考电压会被单片机认为是低电平0。如果在两者中间,则维持上次电平不变。

3、继续前进,该值就会被写入输入数据寄存器。当调用HAL库HAL_GPIO_ReadPin函数时就会读走该值。

2.1、上拉输入

上拉电阻使能。

2.2、下拉输入

下拉电阻使能。

2.3、浮空输入

上下拉电阻都关闭。

2.4、模拟输入

该模式下是为了读取输入电压的具体数值(ADC), 所以上面框图中在斯密特触发器之前就走向了另一个分支。

3、测试


如上原理图,LED的一脚VCC 3.3V,另一脚接在stm32的PC13上。按键K1接在stm32的PB14上,外部上拉。我们实现按键按下小灯亮,再按下小灯熄灭。

3.1、STM32CubeIDE配置

新建STM32工程,我这里使用STLINK,配置SW接口用于烧录程序。

ctrl + s 快捷键保存生成代码。

3.2、coding

如上图,调用HAL_GPIO_ReadPin会去读取按键脚对应的IDR寄存器获取引脚电平状态,来判断按键是否按下。调用HAL_GPIO_TogglePin对BSRR寄存器操作,实现引脚电平翻转。即可实现按下小灯熄灭活点亮。

4、STM32 GPIO 相关寄存器介绍

4.1、GPIO->ODR寄存器

可读可写。低16位,对应位写1输出高电平,写0输出低电平。高16位保留。

4.2、GPIO->BSRR寄存器

只写寄存器,32位,既能控制管教为低电平,也能控制管教为高电平。

43、GPIO->BRR寄存器

端口位清除寄存器,只写,只能改变管脚状态为低电平。

相关推荐
【云轩】1 小时前
【零基础实战】用STM32玩转DRV8313电机驱动:从原理到无人机/机器人控制
stm32·机器人·无人机
2301_764602232 小时前
stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)
stm32·单片机·嵌入式硬件
楼台的春风3 小时前
PWM(脉宽调制)技术详解:从基础到应用实践示例
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式
Jack153027682794 小时前
芯谷D668:便携式录音机与耳机式盒式录音机的理想音频解决方案
嵌入式硬件·音视频·家庭影院·麦克风阵列处理器·便携式录音机·耳机式盒式录音机
深圳市青牛科技实业有限公司 小芋圆4 小时前
芯谷D2761:为扬声器保护而生的音频限幅器
人工智能·科技·单片机·嵌入式硬件·机器人·音视频
程序员JerrySUN4 小时前
树莓派 4B:AI 物联网完整部署方案
linux·人工智能·嵌入式硬件·物联网·分类·数据挖掘
海的预约6 小时前
51单片机-定时器中断
stm32·单片机·51单片机
美好的事情总会发生7 小时前
以太网的MAC(介质访问控制)详解
linux·网络·人工智能·嵌入式硬件·硬件工程
Johnson Sheng9 小时前
STM32MP157A单片机移植Linux驱动
linux·stm32·单片机
Qingniu0110 小时前
芯谷D2038:高集成度六通道电子音量控制电路的音频解决方案
科技·单片机·嵌入式硬件·音视频·安防·智能插头