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

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于STM32Cube STM32L053配置GPIO达到最低功耗详解含测量实际电流值的主要内容,如果未能解决你的问题,请参考以下文章

STM32Cube STM32L053配置RTC时钟详解

STM32Cube STM32L053配置RTC WAKEUP中断唤醒

STM32Cube STM32L053配置RTC WAKEUP中断唤醒

STM32Cube STM32L053闹钟唤醒LL库和HAL库

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决

STM32Cube_03使用GPIO点亮一个LED