如何在STM32中禁用SDMMC接口

如何在STM32中禁用SDMMC接口,stm32,hal,Stm32,Hal,我使用STM32L476(带SW4STM32和STM32CubeMX)进行低功耗应用。我已经通过微控制器的SDMMC接口(带FatFs)连接SD卡。该接口消耗的电流范围为1mA。因此,我计划在不需要SDMMC接口时禁用它。我在HAL文档中没有找到任何API来禁用它。如何禁用SDMMC接口SDMMC在APB2总线上,您可以通过将RCC_APB2ENR的位10设置为0来禁用外设时钟,这在该处理器的第259页上有说明 根据所使用的库,您需要的代码大致如下 RCC->APB2ENR &=

我使用STM32L476(带SW4STM32和STM32CubeMX)进行低功耗应用。我已经通过微控制器的SDMMC接口(带FatFs)连接SD卡。该接口消耗的电流范围为1mA。因此,我计划在不需要SDMMC接口时禁用它。我在HAL文档中没有找到任何API来禁用它。如何禁用SDMMC接口

SDMMC在APB2总线上,您可以通过将
RCC_APB2ENR
的位10设置为0来禁用外设时钟,这在该处理器的第259页上有说明

根据所使用的库,您需要的代码大致如下

RCC->APB2ENR &= ~RCC_APB2ENR_SDMMCEN;
要再次打开它,需要执行相反的操作,将该位设置为1

RCC->APB2ENR |= RCC_APB2ENR_SDMMCEN;
很有可能HAL中有一个函数可以为您实现这一点,但是使用该库并熟悉它的人必须提供帮助