外部有上拉电阻,设置输入模式,此模式最省电
设置输入模式
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
暂无评论