STM32低功耗模式下GPIO如何配置最节能?
目錄
1、將未使用的GPIO 配置為模擬輸入模式
2、調節GPIO 速度
3、GPIO不使用時禁用寄存器時鐘
4、避免懸空未使用的引腳
STM32低功耗模式下GPIO如何配置最節能,這里總結了一下四點,親測有效(基于STM32L011芯片 LL庫),可降低幾百微安。
1、將未使用的GPIO 配置為模擬輸入模式
GPIO始終有一個輸入通道,可以是數字或模擬通道,如果不需要讀取GPIO數據,則優先配置為模擬輸入。
對 I/O 端口進行編程作為模擬配置時:
- 輸出緩沖器被關閉
- 施密特觸發器輸入被禁用,因此I/O引腳的每個模擬值零消耗。施密特觸發器的輸出被強制為恒定值(0)。
- 上拉和下拉電阻被硬件關閉
將不常用的GPIO配置為模擬輸出,例程如下所示(LL庫):
GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
2、調節GPIO 速度
上升時間,下降時間和最大頻率可使用GPIOx_OSPEEDR配置寄存器進行配置。這種調整對EMI(電磁干擾)和SSO(同時開關輸出)有影響,因為開關電流峰值較高。因此必須平衡GPIO性能與噪聲。通常GPIO配置為低速模式即可,但是高波特率的串口需要配置為高速模式,所以每個GPIO信號的上升時間和下降時間必須適應與相關信號頻率和電路板容性負載兼容的最小值。
將不常用的GPIO配置為低速模式,例程如下所示(LL庫):
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
3、GPIO不使用時禁用寄存器時鐘
如果某個GPIO組不需要長時間使用,請禁用其時鐘。
禁用將不常用的GPIO寄存器時鐘,例程如下所示(LL庫):
LL_IOP_GRP1_DisableClock(LL_IOP_GRP1_PERIPH_GPIOA|LL_IOP_GRP1_PERIPH_GPIOB);
4、避免懸空未使用的引腳
進入低功耗模式時,所有引腳信號必須連接到VDD或接地。
如果GPIO連接到外部接收器(外部元件輸入),則必須使用PP或PU/PD強制GPIO信號值。
當GPIO連接到驅動器(外部元件輸出或總線)時,驅動器必須提供有效電平(VDD 或接地)。如果未定義驅動器電平,則必須使用PU/PD強制GPIO上的信號。出于實際原因,當GPIO是運行模式下的輸入(模擬或數字)時,在低功耗模式下使用輸入
PU/PD可能更容易;當GPIO是運行模式下的輸出時,則使用輸出PP。這可以避免在進入或退出停止模式時管理更改。
?將不常用的GPIO配置為高電平,例程如下所示(LL庫):
LL_GPIO_SetOutputPin(GPIOA,LL_GPIO_PIN_ALL);LL_GPIO_SetOutputPin(GPIOB,LL_GPIO_PIN_ALL);
拓展學習:嵌入式系統降低功耗的設計技術?
總結
以上是生活随笔為你收集整理的STM32低功耗模式下GPIO如何配置最节能?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6行Python代码实现进度条效果(Pr
- 下一篇: STM32 GPIO的原理、特性、选型和