STM32SDIO4bit

今天应该是完成了切换成4bit模式。
饶了很多弯路,刚开始的时候好像就已经成了,但是被ai误导了,(hsd.Instance->CLKCR & SDIO_CLKCR_WIDBUS_1) == SDIO_CLKCR_WIDBUS_1)
一开始给我的是这个,可以判断是否切换成4bit模式,但是一直失败了,结果居然是SDIO_CLKCR_WIDBUS_0。

然后我又开始各方面尝试,还看了一部分源码,花费了很多时间。
比如说HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)==HAL_OK这个函数是否能将STM32和SD卡都切换成4bit模式,
在AI的误导下,我一度以为它不会切换STM32的。
SD_WideBus_Enable这个函数在内部通过errorstate = SDMMC_CmdBusWidth(hsd->Instance, 2U);将从机配置成了4bit模式,然后执行完之后,
image
这个又将STM32配置成了4bit模式。
所以STM32F103VET6我目前使用的hal库是完整的,按照我上次的博客直接就可以配置成4bit模式了,额,得加上一点,
显示低速时钟初始化SD卡,然后将SD卡“复位”,然后重新配置成告诉时钟,然后再次初始化SD卡,接下来再配置成4bit模式,就完成了。
等有空了再学学DMA,然后SD卡就算通关了。

posted @ 2026-04-26 00:38  青春猪头青年  阅读(18)  评论(0)    收藏  举报