STM32驱动学习---GPIO

GPIO

1.GPIO硬件原理图

image-20220225151910471

	GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
	
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); //使能端口F时钟
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //输出模式
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//管脚设置F9
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//速度为100M
	GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽输出
	GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化结构体
	GPIO_SetBits(GPIOF,GPIO_Pin_9);
1.1保护二极管

防止引脚外部电压过高或过低,当外部过高时上方二极管导通吸收高电压,外部电压过低时下方二极管导通补充低电压。

1.2上下拉电阻

开启上拉电阻,引脚默认为高电平。开启下拉电阻,引脚默认为低电平。若都不开启,此时为浮空模式。引脚电压不确定。

GPIO_InitStructure.GPIO_PuPd设置为GPIO_PuPd_UP上拉时,上拉电阻开关闭合,此时为高电平。

image-20220225163430543

GPIO_InitStructure.GPIO_PuPd设置为GPIO_PuPd_DOWN下拉时,下拉电阻开关闭合。

GPIO_InitStructure.GPIO_PuPd设置为GPIO_PuPd_NOPULL浮空时,上下拉开关打开。

1.3P-MOS和N-MOS管
1.3.1推挽输出与开漏输出

image-20220225171836984

1.定义不同

**NPN型三极管:**由两块N型和一块P型半导体组成,P型半导体在中间,两块N型半导体在两侧。三极管是电子电路中最重要的器件,它最主要的功能是电流 放大和开关作用。

**PNP型三极管:**由2块P型半导体中间夹着1块N型半导体所组成的三极管,所以称为PNP型三极管。也可以描述成,电流从发射极E流入的三极管。

2.电流控制不一样

**NPN:**用 B→E 的电流(IB)控制 C→E 的电流(IC)。E极电位最低,且正常放大时通常C极电位最高,即 VC > VB > VE

**PNP:**用 E→B 的电流(IB)控制 E→C 的电流(IC)。E极电位最高,且正常放大时通常C极电位最低,即 VC < VB < VE

3.输出状态不同

PNP与NPN型传感器其实就是利用三极管的饱和和截止,输出两种状态,属于开关型传感器。但输出信号是截然相反的,即高电平和低电平。NPN输出是低电平0,PNP输出的是高电平1。

image-20220225171551529

image-20220225174345839

推挽输出,内部电阻很小,高低电平都具备电流输出能力,也都具备驱动能力。缺点是不能将两个推挽输出的IO口进行线与,当一个引脚为高电平另一个引脚为低电平时,电流会从高电平引脚的上方MOS流出,直接流入低电平引脚的下方MOS,与GND相通,造成短路,进而造成IO口损坏。优点是推挽输出高电平时电流较大,驱动能力比开漏输出高电平时强很多。

开漏输出,当IN端为高电平时,MOS管断路,OUT端电压为VDD。若没有外接上拉电阻R8,电流驱动能力很弱,故称不是真正意义上的高电平。只能通过外接上拉电阻,提高高电平时的驱动能力。但输出电压和电流大小很好通过选择不同电源及电阻实现控制。另外开漏输出弥补了推挽输出不能线与的功能。

特点总结

项目推挽输出开漏输出
高电平驱动能力需外部上拉电阻
低电平驱动能力
电平跳变速度由外部上拉电阻决定,电阻越小,反应越快
线与功能不支持支持
电平转换不支持支持

讲解不到位的希望大家指出,有需要我讲解的部分,希望大家提出,我会出文档讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值