GPIO,通用输入输出端口,作STM32的可控制引脚。STM32芯片通过GPIO与外部设备相连接,实现与外部通讯、控制及数据采集。
基本的输出功能是控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入LED灯,控制LED灯亮灭,引脚接入到继电器或三极管,可通过继电器或三极管控制外部大功率电路的通断。
基本的输入功能是检测外部电平。如把GPIO引脚连接到按键,通过电平高低区分按键是否被按下。
每个GPIO端口有两个32位配置寄存器(GPIOx_CRL, GPIOx_CRH),(GPIOx_IDR, GPIOx_ODR), 一个32位置位/复位寄存器(GPIOx_BSRF)(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
二、GPIO模式
·输入浮空
·输入上拉
·输入下拉
·模拟输入
·开漏输出
·推挽输出
·推挽式复用功能
·开漏复用功能
2-1 GPIO推挽输出
以Led为例。满足led灯亮条件:串联电路亮灯。
推挽电路主要由npn和pnp三极管组成:
2-1-1 推挽电路之推:把电流“推”给负载
左侧提供高电平,导致Q1,Q2处高电平,npn三极管导通,pnp三极管断开,使得D3灯上端接5V,下端接地,形成串联电路,灯亮;
左侧提供低电平,导致Q1,Q2低电平,Q2处pnp三极管导通,使得D3灯上下端都接地,灯灭。
2-1-2 推挽电路之挽:把外头电流“挽”进来
左侧提供低电平,导致Q3,Q4处低电平,pnp三极管导通,使得D3灯上端接5V,下端接地,形成串联,灯亮;
左侧提供高电平,导致Q3,Q4处高电平,Q3处npn三极管导通,使得灯上下端都接5V,灯灭。
∴ 推挽电路和负载关系:
高低电平的驱动能力很强,电平的跳变速度很快.
2-2 GPIO开漏电路
在STM32电路中由两个MOS管组成,这里用两个npn三极管代替,当接入负载时,不管给高电平还是低电平,负载灯都不亮。
原因:Q2导通,D1左右端都接地,则灯灭,若Q2不导通,D1右端还接地,左端悬空状态,D1也不亮。(开漏输出特点,即是 集电极输出).
要使D1灯亮,内部加一个上拉电路。这时,Q2不导通,D1灯左端通过上拉电阻接正极5V,右端接地,灯亮;
若Q2导通, D1灯左右端都接地,灯灭。
所以,开漏高电平(Q2不导通,只有右端一路)驱动能力是由上拉电阻提供;而开漏低电平(Q2导通,左右两路)驱动能力很强,电平的跳变速度由上拉电阻决定,电阻越小反应越快,相应功耗也越大。
驱动电流的问题,你可以选择以下做法:1,STM32的GPIO管脚接到三极管(NPN)的B端,三极管的E端接地,三极管的C端接电机的负端,电机的正端接VCC(3.2v)。2,通过对STM32的GPIO初始化,设置为输出,当输出高电平时,电机工作;当输出低电平时,电机停机。3,有问题,可以继续问。。。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)