STM32Cube STM32L053配置GPIO达到最低功耗详解含测量实际电流值

外部有上拉电阻,设置输入模式,此模式最省电

设置输入模式
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;

外部有上拉电阻,设置中断模式,此模式最省电,同时还可以唤醒单片机

//设置中断模式
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

设置成输出模式,不管是推挽还是开漏,不管是上拉还是下拉都很耗电,如果设置IO为高电平,开关导通会有超大电流

例:外部上拉电阻

电路图

1、输入模式 

①输入,不上拉也不下啦,运行状态314μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到23μA(最佳)

①输入,上拉,运行状态314μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到68μA 

①输入,下拉,运行状态327μA,RTC 20线Wake Up唤醒下Stop模式18μA,此时如果开关导通电流达到23μA  

2、中断模式 

①中断模式,不上拉也不下拉,运行状态315μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到23μA (最佳)

①中断模式,上拉,运行状态315μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到68μA

①中断模式,下拉,运行状态328μA,RTC 20线Wake Up唤醒下Stop模式18μA,此时如果开关导通电流达到23μA

3、推挽模式 

①推挽,上拉,IO默认输出低,运行状态377μA,RTC 20线Wake Up唤醒下Stop模式69μA

②推挽,上拉,IO默认输出高,运行状态314μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到9mA

①推挽,下拉,IO默认输出低,运行状态332μA,RTC 20线Wake Up唤醒下Stop模式23μA

②推挽,下拉,IO默认输出高,运行状态360μA,RTC 20线Wake Up唤醒下Stop模式51μA,此时如果开关导通电流达到9mA

①推挽,不上拉也不下拉,IO默认输出低,运行状态332μA,RTC 20线Wake Up唤醒下Stop模式23μA

②推挽,不上拉也不下拉,IO默认输出高,运行状态315μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到9mA

4、开漏模式 

①开漏,不上拉也不下拉,IO默认输出低,运行状态332μA,RTC 20线Wake Up唤醒下Stop模式23μA,此时如果开关导通电流达到23μA(没有变化)

②开漏,不上拉也不下拉,IO默认输出高,运行状态315μA,RTC 20线Wake Up唤醒下Stop模式5μA,此时如果开关导通电流达到23μA

版权声明:本文为CSDN博主「シ゛甜虾」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/g313105910/article/details/121785070

生成海报
点赞 0

シ゛甜虾

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32F2————配置时钟延迟不准的问题

STM32F2配置时钟问题 笔者在本科毕业设计使用STM32F207芯片,但是在配置时钟时出现了问题。 问题 我按照F1写代码的延时函数放在F2竟然不准了 换个办法 使用Systick时钟也是不准,原因是笔者代

为什么重写printf函数没有用?

以前在网上找了无数方法去重写printf函数,但发现都没效果,今天偶然发现重写printf函数可以了,原因是以前没有勾选微库(Use MicroLlB)! 这里