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:发光二极管,正向通电点亮,反向通电不亮。
有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发生,频率固定。
无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。
原文地址:https://blog.csdn.net/2401_84378523/article/details/145328124
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!