了解STM32中的GPIO

一、简介

输出模式

输入模式

如果控制功率太大的设备,加入驱动电路即可

二、GPIO的基本结构

每个GPIO都配备一个驱动器和寄存器。

寄存器就是一段特殊的存储器,内核可以通过APB2总线对寄存器进行读写,这样就可以完成输出电平和读取电平的功能。stm32都是32位的。所以寄存器都是32位的,而端口只有16位,所以只有低16位有用,高十六位没用。寄存器只负责存储数据

驱动器是用来增加信号的驱动能力的,例如点灯,因为寄存器只负责存储数据,需要驱动器来增大驱动能力

1.施密特触发器

施密特触发器本身既可以接收模拟信号,也可以接收数字信号,但通常它更多地被用于处理模拟信号,并将其转换为具有更明确数字特性的输出。

施密特触发器(Schmitt Trigger)是一种电子电路,常用于数字逻辑电路和信号处理电路中。以下是关于施密特触发器的详细解释:

一、定义与特点

施密特触发器是一种包含正反馈的比较器电路,具有两个稳定状态:“低”和“高”。其主要特点如下:

  1. 两个稳定状态:施密特触发器有两个稳定状态,其维持和转换完全取决于输入电压的大小。
  2. 双阈值电压:施密特触发器具有两个不同的阈值电压,分别称为正向阈值电压和负向阈值电压。当输入电压高于正向阈值电压时,输出为高;当输入电压低于负向阈值电压时,输出为低。
  3. 滞回特性:在输入信号在正负向阈值电压之间时,输出不改变,即输出由高电准位翻转为低电准位,或是由低电准位翻转为高电准位时所对应的阈值电压是不同的。这种双阈值动作被称为迟滞现象,表明施密特触发器有记忆性。
  4. 抗干扰能力强:施密特触发器对高噪声环境下的输入信号具有良好的鲁棒性,可以有效地抑制输入信号中的噪声。

二、工作原理

施密特触发器的工作原理基于正反馈机制。当输入信号从低电平跃升至高电平时,触发器处于“低”状态,此时由于正反馈的作用,输出保持在低电平。当输入信号上升到一个称为上升阈值电压的临界值时,触发器切换到“高”状态,输出电压快速跃升到高电平。相反,当输入信号下降到一个称为下降阈值电压的临界值时,触发器切换回“低”状态,输出电压快速跃降到低电平。

三、应用

施密特触发器在电子电路和信号处理中有着广泛的应用,主要包括以下几个方面:

  1. 波形整形:施密特触发器可以将模拟信号波形整形为数字电路能够处理的方波波形。
  2. 抗干扰:由于施密特触发器具有滞回特性,它可用于在开回路配置中用于抗扰,以及在闭回路正回授/负回授配置中用于实现多谐振荡器。
  3. 数字电路中的干扰抑制:施密特触发器可以有效地抑制数字电路中的干扰信号,确保电路的稳定运行。
  4. 信号恢复:施密特触发器还可以作为信号恢复电路,通过消除噪声内容,推断出原始输入信号量。

四、种类与实现

施密特触发器可以由晶体管、门电路等构成,也可以通过运放实现。采用运放实现的施密特触发器包括反相输入和同相输入两种类型。

综上所述,施密特触发器是一种功能强大的电子电路,其独特的双阈值电压和滞回特性使其在数字电路和信号处理中发挥着重要作用。

因为引脚是从外部进来的,虽然是数字信号,但在传输的过程中会出现失真,所以要用到施密特触发器(肖特基触发器是被写错了)

  三、了解输入和输出模式

上拉输入:默认是高电平

下拉输入:默认是低电平

上拉电阻和下拉电阻的阻值都比较大

1.什么是推挽输出

推挽输出中 P-MOS 和N-MOS均有效

推挽输出,数据寄存器为1时,上管导通(P-MOS),下管断开(N-MOS),输出接到VDD,输出高电平

推挽输出,数据寄存器为1\0时,上管断开(P-MOS),下管导通(N-MOS),输出接到VSS,输出低电平

这种模式下高低电平都有较强的驱动能力,所以推挽输出模式也可以叫强推输出模式。在推挽输出模式下。STM32对IO口具有绝对的控制权,高低电平都由STM32说的算。

2.什么是开漏输出

在开漏输出这种模式下,只有低电平有驱动能力,高电平则没有。

那这个模式有什么用呢,这个开漏模式可以作为通信协议的驱动方式。比如12C通信的引脚,就是使用的开漏模式。在多机通信的情况下,这个模式可以避免各个设备的相互干扰。

另外开漏模式还可以用于输出5V的电平信号。比如在IO口外接一个上拉电阻到5v的电源 当输出低电平时,由内部的N-MOS直接接到VSS,当输出高电平时,由外部的上拉电阻拉高至5v,这样就可以输出5V的电平信号,兼容一些5v电平设备

这个模式下P-MOS是无效的,只有N-MOS在工作

当数据寄存器为1时,下管断开,这是相当于是输出断开,也就是高阻模式

数据为0时,下管导通,输出直接接到VSS,也就是输出低电平,

3.关闭模式

当引脚配置为输入模式下的时候,P-MOS,N-MOS都无效,输出关闭,端口的电平由外部信号来控制

四、GPIO的8种工作模式

 1.浮空输入

当引脚浮空是,选择浮空输入的电平是不确定的。所以在选择浮空输入时,端口一定要接上一个连续的驱动源,不能出现浮空的状态

2.输入浮空、上拉、下拉的配置

输入模式下,输出驱动器是断开的,端口只能输入,不能输出

3.模拟输入

GPIO无效、引脚直接接到内部ADC,这个可以说是ADC模数转换的专属配置了。当我们使用ADC的时候,将引脚配置为模拟输入就行了

4.开漏和推挽输出

具体功能上边有说,这里就不多加赘述了。在输出模式下,输入模式依然有效,而在输入模式下,输出模式是断开的,这是因为一个端口可以有多个输入,但只有一个输出

5.复用开漏和复用推挽输出

五、GPIO寄存器

1.配置寄存器

配置寄存器有两个,一个是GPIO配置低寄存器,一个是GPIO配置高寄存器 

每一个端口的模式由4为进行配置,16个端口就需要64位

2.端口输入数据寄存器

低16位对应16个引脚,高十六位没有使用、

3.端口输出数据寄存器

低16位对应16个引脚,高十六位也没有使用、

4.端口位设置或清除寄存器

高16位进行清除,第十六位进行位设置

5.端口位清除寄存器

这两个是一样的,为什么要这样设置?其实是为了方便,如果你是想单一的进行位设置或者位清除。那位设置时;用上面这个寄存器,位清除时,用下面这个寄存器,因为在设置和清除时,使用的都是低十六位的数据,,比较方便

5.端口配置锁定寄存器

对端口的配置进行锁定,防止意外更改

六、结尾

单片机和芯片,一般都使用高电平弱驱动,低电平强驱动的规则,所以兄弟姐妹们,切记切记。要是不懂,可以配合某站江科大的stm32的3-1相结合,我就是基于这个写的笔记。谢谢大家赏面观看。

### 如何在GPIO接口中加入施密特触发器进行信号处理 #### GPIO施密特触发器的作用 当涉及到嵌入式系统的开发时,确保输入到微控制器的信号干净无噪声至关重要。施密特触发器能够有效消除由于机械开关弹跳或其他原因引起的瞬态干扰[^2]。 #### 设计考虑因素 对于大多数现代微控制器而言,在其内部已经集成了具有迟滞功能的输入缓冲区来模拟施密特特性;然而,在某些情况下可能仍需外部添加专用器件以获得更佳性能或特定参数配置。这通常发生在需要特别快速响应时间、更低功耗或者更高阈值电压范围的情况下。 #### 实现方法 如果决定采用外置方式,则可以通过如下手段实现: 1. **选择合适的IC** 需要挑选适合应用需求的施密特触发器集成电路(IC)。这些设备提供多种封装形式以及不同的电气规格供开发者选用。例如74HC14六反相器就常被用于此类目的因为它不仅具备上述特点还支持较宽的工作电源区间。 2. **连接至目标引脚** 将选定好的元件按照数据手册指导正确焊接并连线到对应的MCU I/O端口上。一般做法是把待检测信号接入IC的数据输入端而输出则连回处理器相应的读取位置。 3. **编程控制逻辑** 接下来编写固件代码以便于初始化硬件资源并对事件作出反应。下面给出了一段伪代码片段展示了一个简单的流程框架: ```c // 初始化GPIO为输入模式 void setup_gpio(void){ // 设置指定管脚作为输入用途 } int main(){ setup_gpio(); while(1){ if(gpio_read(INPUT_PIN)){ handle_event(); } delay_ms(DEBOUNCE_DELAY); } } ``` 通过这种方式可以有效地利用施密特触发器改善系统稳定性并简化软件层面的设计复杂度[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值