【STM32F4】七、上拉电阻和下拉电阻的作用


:下文中所说的 0、1电平,并不是真正意义的电平为0、电平为1! 0、1电平只代表一种逻辑状态,即 低电平高电平,比如有可能 1 ~ 2v逻辑05 ~ 6v逻辑1

一、上拉电阻

1. 应用场景

上拉电阻应用在引脚低电平有效的情况。
在这里插入图片描述

2. 作用

为什么在低电平有效的引脚上,要连一个上拉电阻呢?

我们希望引脚只有两个逻辑状态,即01,但如果某低电平有效的引脚不接上拉电阻,它就只有0未知的状态:

当与低电平(地)接通时为0,断开时为未知

如果接了一个上拉电阻,那么这个引脚在接低电平时为0,而在不接低电平时,因为处于接上拉电阻且断路的状态,可以确保此时电平为1,避免了未知状态。

二、下拉电阻

1. 应用场景

下拉电阻应用在引脚高电平有效的情况。
在这里插入图片描述
(上图中R29为下拉电阻)

2. 作用

为什么在高电平有效的引脚上,要连一个下拉电阻呢?

同样,我们希望引脚只有两个逻辑状态,即01,但如果某高电平有效的引脚不接下拉电阻,它就只有1未知的状态:

当与高电平(地)接通时为1,断开时为未知

如果接了一个下拉电阻,那么这个引脚在接高电平时为1,而在不接高电平时,因为处于接下拉电阻且断路的状态,可以确保此时电平为0,避免了未知状态。

三、知乎上的一篇漫画

知乎上看到一篇漫画,很好得解释了上拉电阻的作用,下面把它贴都这里:
参考:知乎用户【Shawn Li】的回答:本问题中第二个回答

在这里插入图片描述
图1

在这里插入图片描述
图2

在这里插入图片描述
图3

### 如何在Proteus中仿真STM32上拉电阻配置效果 #### 创建工程并选择控制器 为了在Proteus中实现STM32上拉电阻仿真,首先需创建新工程并选择合适的控制器。确保使用的Proteus版本至少为8.6及以上版本,因为早期版本不支持STM32芯片[^3]。 ```plaintext 1、打开Proteus,点击新建项目按钮; 2、通过左上角“关键字”框输入:STM32来查找所需型号; 3、对于本案例而言,可以选择STM32F103系列作为目标MCU。 ``` #### 配置GPIO端口模式 当涉及到外部设备连接时,比如按键开关或其他低电平信号源,通常会启用内部上拉功能或将外接物理上拉电阻应用于相应的I/O引脚上来防止浮空状态引起误触发等问题。针对STM32微控制器来说: - **硬件层面**:可以在原理图编辑器里直接添加适当阻值(如10kΩ)的电阻元件到指定IO管脚与VCC之间形成硬性拉高路径; - **固件编程方面**:利用初始化函数设置特定引脚的工作方式为带有内置弱上拉机制的输入模式。例如,在Keil MDK环境下编写如下代码片段用于开启PA0引脚上的内建上拉特性[^4]: ```c // 初始化 GPIOA 的 PA0 引脚为带内部上拉的输入模式 void GPIO_Configuration(void){ GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; // 启用内部上拉 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } ``` #### 添加并测试上拉电阻的效果 完成上述步骤之后,继续完善电路设计——放置LED指示灯以及其他必要的外围组件,并建立完整的电气连接关系。随后加载由KEIL编译产生的HEX文件至虚拟单片机实例之中,调整系统时钟频率参数匹配实际应用场景需求。 此时启动实时模拟环境观察现象变化情况,按下关联于某根具有上拉措施的通用目的输入/输出线路上的操作部件后应能立即看到预期响应行为的发生,即LED点亮与否取决于该线路当前逻辑电平高低状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值