已尝试使用不同计算机的早期版本的 CubeMX。做同样的事情。看不到 init 结构的任何使用(它是本地的)。SD 卡未正确初始化。
生成的完整代码是:
- tatic void MX_SDMMC1_SD_Init(void)
- {
- /* USER CODE BEGIN SDMMC1_Init 0 */
- /* USER CODE END SDMMC1_Init 0 */
- /* USER CODE BEGIN SDMMC1_Init 1 */
- /* USER CODE END SDMMC1_Init 1 */
- 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_1B;
- hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
- hsd1.Init.ClockDiv = 0;
- /* USER CODE BEGIN SDMMC1_Init 2 */
- /* USER CODE END SDMMC1_Init 2 */
- }
这对我来说似乎不完整。尝试将此代码与 BSP 驱动程序代码进行比较表明某处需要更多代码。
如果我缺少某个设置,我想知道它。早期版本(大约 2018 年)也是这样做的,所以缺少了一些东西。FATFS 已启用,SDIO 或多或少具有适当的参数。