STM32中如何禁用SDMMC接口

How to disable the SDMMC interface in STM32

我将 STM32L476(带 SW4STM32 和 STM32CubeMX)用于低功耗应用。我已经通过微控制器的 SDMMC 接口(带有 FatFs )连接了 SD 卡。该接口消耗的电流在 1mA 范围内。所以我打算在不需要时禁用 SDMMC 接口。我没有在 HAL 文档中找到任何 API 来禁用 it.How 来禁用 SDMMC 接口

SDMMC 在 APB2 总线上,您可以通过将 RCC_APB2ENR 的第 10 位设置为 0 来禁用外围设备的时钟,这在 reference manual 的第 259 页上有记录处理器。

您需要的代码大致如下,具体取决于您使用的库。

RCC->APB2ENR &= ~RCC_APB2ENR_SDMMCEN;

要再次打开它,您需要执行相反的操作,将该位设置为 1

RCC->APB2ENR |= RCC_APB2ENR_SDMMCEN;

很可能 HAL 中有一个函数可以为您执行此操作,但是使用该库并熟悉它的人将不得不提供帮助。