当前位置: 首页> 财经> 产业 > STM32-01 推挽输出-点亮LED

STM32-01 推挽输出-点亮LED

时间:2025/7/10 0:20:07来源:https://blog.csdn.net/weixin_43362233/article/details/140243646 浏览次数:0次

本文以STM32中点亮LED为例,解读推挽输出的原理

推挽输出介绍

在这里插GPIO入图片描述
所谓的推挽输出,就是通过控制输出控制模块,打开或者关闭P-MOS或者N-MOS。

─ 推挽模式下:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
当P-MOS被打开,N-MOS被关闭时,输出端整体呈现灌电流模式,可以理解为此时的输出端口为GND负极。
当P-MOS被关闭,N-MOS打开时,输出端口保持一个Vdd的高电平状态,可用于对外部的负载供电。

推挽输出和开漏输出的区别
─ 开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(P-MOS从不被激活)。
─ 推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
可以看到从输出状态上,开漏输出模式只能输出低电平和高阻态,若需输出高电平必须通过外部上拉电阻实现。
而推挽输出不需要外接上拉电阻,既可以输出高电平又可以输出低电平。

推挽输出实例

硬件配置

MCU:STM32F103C8T6
LED

硬件接口

MCU:GPIOA1以推挽形式为LED进行供电

软件思路

1.打开GPIOA所在的时钟线
2.配置GPIOA为推挽输出
3.Site/Resite GPIO口的Pin状态

#代码实现

#include "stm32f10x.h"                  // Device header
int main(void)
{//Enable GPIOA Clock BusRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//Init GPIO configeGPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_ResetBits(GPIOA, GPIO_Pin_1);while (1){}
}
关键字:STM32-01 推挽输出-点亮LED

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: