【stm32】GPIO

GPIO(通用输入输出口)

1 .可配置8种输入输出模式

浮空输入,上拉输入,下拉输入 的电路基本结构一样,都可以读取端口的高电平,区别为上拉电阻和下拉电阻的连接。引脚悬空时,上拉输入默认高电平,下拉输入默认低电平,浮空输入不确定,要在端口处接一个连续的驱动源,不能悬空。

在输入模式下,输出驱动器断开,只能输入不能输出

当输入为5V时,上面的保护二极管要进行处理,否则接VDD 3.3V时,外部接入5V电压会导致上面二极管开启并产生比较大的电流

模拟输入

只剩下引脚接入片上外设一条线,会关闭数字的输入功能

当使用ADC时,将引脚配置为模拟输入

开漏输出和推挽输出 ,电路结构基本一样,为数字输出端口,用于输出高低电平,区别为开漏输出的高电平为高阻态,没有驱动能力 ;推挽输出高低电平都有驱动能力

输出由输出数据寄存器控制,P-MOS无效,为开漏输出;P-MOS和N-MOS都有效,为推挽输出

在输出模式下,输入模式也有效(一个端口只能一个输出,但可以有多个输入)


复用开漏输出和复用推挽输出 ,与开漏输出和推挽输出相比,是复用的输出,引脚电平由片上外设控制

2 .引脚电平0~3.3V(数据0为低电平,0V;数据1为高电平 3.3V),部分可容忍5V(可输入5V电压,高电平,输出最大为3.3V)

具体可查看附件引脚定义,带FT即可容忍5V的
3 .输出模式下可控制端口输出高低电平,如驱动LED,控制蜂鸣器,模拟通信协议输出时序
4.输入模式下读取端口高低电平或电压,如读取案件输入,外界模块电平信号输入,ADC电压采集,模拟通信协议接收数据

GPIO基本结构

所有GPIO都挂载在APB2外设总线上

GPIO位结构

蜂鸣器

1.有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可发声,频率固定,如下图

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

三极管开关驱动方案:

对于功率较大的,直接而用IO口驱动会使stm32负担过重,这是可以用三极管驱动电路来驱动

上面图为PNP三极管的驱动电路,三极管左边为基极,带牵头为发射极,剩下为集电极,基极给低电平,三极管导通,通过3.3V和GND给蜂鸣器提供电流;基极给高电平,三极管截至,蜂鸣器无电流

下面图为NPN三极管驱动电路,驱动逻辑与上面相反,基极高电平导通,低电平断开

PNP三极管最好接在上面,NPN三极管最好接在下面,是因为,三极管的通断,是需要在发射极和基极直接产生一定的开启电压

LED

为stm32的GPIO口驱动LED电路

上面为低电平驱动电路,LED正极接3.3V,负极通过限流电阻接到PA0,PA0输出低电平时,LED两端产生电压差,,形成正向导通的电流;输出高电平时,不会形成电流,熄灭

限流电阻一方面防止LED因电流过大而烧毁,也可以调整LED亮度

下面为高电平驱动电路,同理相反

选择:依靠IO口高低电平的驱动能力,在推挽模式下,高低电平均有较强驱动能力,两种接法均可;但在单片机电路里,一般倾向第一种,因为很多单片机或芯片都使用高电平弱驱动,低电平强驱动的规则。

注;本文来源为江协b站课程,为笔记

相关推荐
Hard_August2 小时前
STM32窗口看门狗(WWDG)深度解析:精准守护嵌入式系统的实时性
stm32·单片机·嵌入式硬件·物联网
李永奉2 小时前
51单片机-实现外部中断模块教程
单片机·嵌入式硬件·51单片机
木木灬.5 小时前
单片机---------WIFI模块
单片机·嵌入式硬件
你怎么知道我是队长10 小时前
STM32CubeIDE V1.9.0下载资源链接
stm32·单片机·嵌入式硬件
曾哥嵌入式10 小时前
Stm32通过ESP8266 WiFi连接阿里云平台
stm32·嵌入式硬件·阿里云
顾念`11 小时前
单片机常用通信协议(二)
单片机·嵌入式硬件
Ronin-Lotus1 天前
嵌入式硬件篇---手柄
嵌入式硬件·手柄
芯岭技术1 天前
普冉PY32F002A单片机用LPTIM唤醒stop模式
单片机·嵌入式硬件
DIY机器人工房1 天前
QT代码框架小案例:一个简单的时间类(Time)及其实例化程序,模拟了时间的设置、显示和自动流逝功能,类似一个简易电子时钟。
stm32·单片机·嵌入式硬件·嵌入式·diy机器人工房
bai5459361 天前
STM32 硬件I2C读写MPU6050
stm32·单片机·嵌入式硬件