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

相关推荐
hsjiasb1 小时前
FreeRTOS学习(二十三)——消息缓冲区(Message Buffer)
stm32·单片机·嵌入式硬件·学习·freertos
我是海飞3 小时前
杰理JL703N SSD1306 OLED(128x64) 点阵屏移植说明
单片机·算法·嵌入式·音频·杰理
沸速存储4 小时前
CPU 和 GPU 核心差别在哪?为什么 AI 训练离不开 GPU
服务器·人工智能·科技·嵌入式硬件·电脑
wuyk5555 小时前
2.队列:先进先出的线性数据结构
c语言·数据结构·stm32·单片机
我不会JAVA!6 小时前
【无标题】
嵌入式硬件·h.264
芯岭技术郦6 小时前
OM6625A芯片 Timer 定时器计数模式使用说明
stm32·单片机·嵌入式硬件
Dr.kangder8 小时前
嵌入式面试总结(八)——大小端
嵌入式硬件·面试·职场和发展·架构·嵌入式
zlinear数据采集卡9 小时前
D223的SRAM硬件记录仪:外部触发与瞬态波形捕获方案
arm开发·嵌入式硬件·fpga开发·开源
zcmodeltech9 小时前
双碳沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的碳捕集-零碳园区-综合能源全场景联动方案
stm32·嵌入式硬件·能源·嵌入式实时数据库·多分类
LCG米10 小时前
STM32零基础入门教程:从环境搭建到实战项目(点亮LED + 串口打印 + 呼吸灯)
stm32·单片机·嵌入式硬件