【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站课程,为笔记

相关推荐
蹊黎12 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
Zw-awa15 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王15 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何15 小时前
二进制和十六进制
stm32·单片机
国科安芯17 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
TST-魚爷17 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
不昀19 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵20 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
国科安芯20 小时前
核电站蒸汽发生器传热管在役无损检测模拟前端的低噪声供电研究
嵌入式硬件·ldo·低压差线性稳压器·无损检测·核电站·蒸汽发生器·传热管
集芯微电科技有限公司21 小时前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络