使用cubemx配置sdmmc,初始化代码如下:
时间: 2023-05-08 09:00:13 浏览: 91
SD卡是常用的外部存储设备,为了方便使用,可以使用CubeMX来配置SDMMC模块,下面是初始化代码:
首先需要在CubeMX里面进行SDMMC的配置,点击“Pinout & Configuration”->“Connectivity”->“SDMMC”进行配置,可以设置SD卡的时钟频率、总线宽度等参数。
接着在Main函数中进行初始化,首先需要使能SDMMC模块的时钟,并设置时钟源:
`__HAL_RCC_SDMMC_CLK_ENABLE();`
`RCC_PeriphCLKInitTypeDef RCC_PeriphClkInit = {0};`
`RCC_PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_SDMMC;`
`RCC_PeriphClkInit.SdmmcClockSelection = RCC_SDMMCCLKSOURCE_PLLSAI1;`
`HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphClkInit);`
然后需要进行SDMMC的初始化:
`SD_HandleTypeDef hsd1;`
`hsd1.Instance = SDMMC1;`
`hsd1.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;`
`hsd1.Init.ClockBypass = SDMMC_CLOCK_BYPASS_DISABLE;`
`hsd1.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;`
`hsd1.Init.BusWide = SDMMC_BUS_WIDE_4B;`
`hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;`
`hsd1.Init.ClockDiv = 0;`
`SDMMC_Init(hsd1.Instance, hsd1.Init);`
最后需要进行SD卡的检测,如果正常插入,则进行SD卡的初始化:
`if(HAL_SD_InitCard(&hsd1) == SD_OK)`
`{`
`//SD卡初始化成功`
`}`
以上是使用CubeMX进行SDMMC配置的初始化代码,需要注意的是,在使用SD卡之前,需要检查SD卡是否连接正确并且有数据,否则无法进行初始化。