/** * 函数名:SD_Init * 描述:初始化SD卡,使卡处于就绪状态(准备传输数据) * 输入:无 * 输出:-SD_Error SD卡错误代码 * 成功时则为 SD_OK * 调用:外部调用 */SD_Error SD_Init(void){ /*重置SD_Error状态*/SD_Error errorstatus = SD_OK; NVIC_Configuration(); /* SDIO 外设底层引脚初始化 ...
执行SD_InitializeCards 函数无错误后 SD 卡就已经处于数据传输模式下的待机状态,退出 SD_InitializeCards 后会返回前面的 SD_Init 函数,执行接下来代码,以下是 SD_Init 函数的后续执行过程: 1) 重新配置 SDIO 外设,提高时钟频率,之前的卡识别模式都设定 CMD 线时钟为小于 400KHz,进入数据传输模式可以把时钟设置为...
执行SD_InitializeCards 函数无错误后 SD 卡就已经处于数据传输模式下的待机状态,退出 SD_InitializeCards 后会返回前面的 SD_Init 函数,执行接下来代码,以下是 SD_Init 函数的后续执行过程: 1) 重新配置 SDIO 外设,提高时钟频率,之前的卡识别模式都设定 CMD 线时钟为小于 400KHz,进入数据传输模式可以把时钟设置为...
以rt-thread/bsp/stm32/libraries/HAL_Drivers/drv_sdio.c 程序为例,SDIO驱动层程序从 rt_hw_sdio_init 函数开始,由于使能了自动初始化,此函数由 INIT_DEVICE_EXPORT(rt_hw_sdio_init); 宏实现初始化调用(关于自动初始化如何实现的细节,可参考笔者另外一篇博文对自动初始化的详细分析:代码自动初始化(点击跳转)...
以rt-thread/bsp/stm32/libraries/HAL_Drivers/drv_sdio.c 程序为例,SDIO驱动层程序从 rt_hw_sdio_init 函数开始,由于使能了自动初始化,此函数由 INIT_DEVICE_EXPORT(rt_hw_sdio_init); 宏实现初始化调用 (关于自动初始化如何实现的细节,可参考笔者另外一篇博文对自动初始化的详细分析:代码自动初始化(点击跳转...
【5】调用库函数,SDIO初始化(库函数名:SDIO_Init,一些初始化的东西,例如频率,卡识别时要先设400K,后续数据传输时可以调高些,另外还有设置几根数据线之类的) ↓ 【6】调用库函数,设置SDIO上电(库函数名:SDIO_SetPowerState,要使用SD卡,就要把电源打开) ...
以rt-thread/bsp/stm32/libraries/HAL_Drivers/drv_sdio.c 程序为例,SDIO驱动层程序从 rt_hw_sdio_init 函数开始,由于使能了自动初始化,此函数由 INIT_DEVICE_EXPORT(rt_hw_sdio_init); 宏实现初始化调用 (关于自动初始化如何实现的细节,可参考笔者另外一篇博文对自动初始化的详细分析:代码自动初始化(点击跳转...
Init:SDIO 初始化结构体,用于配置 SDIO 工作参数。 typedefstruct{uint32_tClockEdge;// 数据或指令变化的时钟沿uint32_tClockBypass;// 是否设置旁路分频器uint32_tClockPowerSave;// 空闲状态是否输出时钟uint32_tBusWide;// 设置SDIO总线位宽uint32_tHardwareFlowControl;// 用于使能硬件流控制uint32_tClo...
g_sdcard_handler.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE; /* 不使用bypass模式,直接用HCLK进行分频得到SDIO_CK */ g_sdcard_handler.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE; /* 空闲时不关闭时钟电源 */ g_sdcard_handler.Init.BusWide = SDIO_BUS_WIDE_1B; /* 1位...
init(0) --通常从0开始,默认0 log.info("sdio", "call sdio.sd_mount") status=sdio...