STM32 GPIO

GPIO简介

GPIO(General Purpose Input Output)通用输入输出口

可配置为8种输入输出模式

引脚电平:0V~3.3V,部分引脚可容忍5V

输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时许等。

输入模式下可读取端口的高低电平或者电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接受数据等。

系统结构

寄存器:是一段特殊的存储器,内核可以通过APB2总线对寄存器进行读写,这样就可以完成输出电平和读取电平的功能了

GPIO位结构

保护二极管VDD 3.3v:当输入电压比3.3V高的时候,上方的二极管就会导通,输入电压产生的电流就会直接流入VDD而不会流入内部电路,避免过高的电压对电路造成伤害。

VSS 0V:如果输入电压比0V还要低,下方二极管VSS导通,电流从VSS流出去,不会从内部电路吸取电流,起到保护电路的作用

电流在0V~3.3V之间二极管不会导通。

上拉:默认高电平输入方式

下拉:默认低电平输入方式

浮空:跟随外界电平变化

这里应该是施密特触发器(翻译错误):作用是对输入电压进行整形的,如果输入电压大于某一阈值时,输出就会瞬间升为高电平,如果输入电压小于某一阈值时,输出就会瞬间降为低电平。

高于上限才为高电平,低于下限为低电平。

输出控制:控制开关的导通和关闭,开关负责将IO口接到VDD或者VSS

推挽输出模式下:

P-MOS和N-MOS均有效

数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,就是输出高电平。

数据寄存器为0时,上管断开,下管导通,输出直接接到VSS,就是输出低电平。

这种模式下,高低电平均有较强的驱动能力,所以推挽输出模式,也可以叫强推输出模式。

在推挽输出模式下,STM32对IO口具有绝对的控制权,高低电平都由STM32说的算。

开漏输出模式下:

P-MOS无效,只有N-MOS在工作

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

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

这种模式下,只有低电平有驱动能力,高电平是没有驱动能力的

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

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

关闭:

当引脚配置为输入模式时,P-MOS和N-MOS关闭,也就是输出关闭,端口的电平由外部信号来控制。

GPIO的8种工作模式

外部外设介绍

LED:发光二极管,正向通电点亮,反向通电不亮。

有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发生,频率固定。

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

相关推荐
不做无法实现的梦~5 小时前
86步进电机和DM860H驱动器的使用方法和记录
单片机·嵌入式硬件
Aaron15885 小时前
RFSOC+VU13P/VU9P+GPU多通道同步一体化解决方案
人工智能·嵌入式硬件·算法·matlab·fpga开发·硬件架构·基带工程
所见即所得111116 小时前
stm32烧录过程中串口问题(串口被占用无法使用)
stm32·单片机·嵌入式硬件
Freak嵌入式6 小时前
WIZnet-EVB-Pico2开始,用MicroPython玩转以太网开发
arm开发·人工智能·python·嵌入式硬件·机器人·嵌入式·micropython
Ligocious6 小时前
stm32---1.两种开发方式点亮LED
stm32·单片机
黑白园6 小时前
STM32F103C8TC使用ST-Link下载
stm32·单片机·嵌入式硬件
时空自由民.6 小时前
嵌入式MCU的中断系统工作流程及其原理
单片机·嵌入式硬件
LCG元6 小时前
STM32实战:基于STM32F103的智慧教室环境监控系统(CO₂+光照+人数统计)
前端·stm32·嵌入式硬件
振南的单片机世界7 小时前
推挽输出:上管推、下管拉,驱动强但不“合群”
arm开发·stm32·单片机·嵌入式硬件
森利威尔电子-7 小时前
森利威尔SL7140|2.5–24V 宽压 / 10mA–2A / PWM 调光 线性 LED 恒流驱动
单片机·嵌入式硬件·集成电路·芯片·电源芯片