5) 在 SD目录下新建sd.c ,sd.h,添加头文件路径方式与上条一致,sd.h文件主要包括各种宏定义及函数声明,包括SD卡类型定义、SD卡指令定义等以及函数声明;
sd.c文件主要进行SD初始化等操作,关于SD卡初始化函数SD_Initialize,其具体操作流程如下:
(1)调用SD_SPI_Init函数初始化GPIO口及SPI工作模式,同时控制片选引脚使之输出高电平;
(2)利用for循环并调用SD_SPI_ReadWriteByte函数进行10读写操作,,同时产生80 个时钟信号,满足SD卡初始化至少需要74个时钟的要求;
(3)调用SD_SendCmd函数发送CMD0命令,复位SD卡同时进入空闲状态;
(4)调用SD_SendCmd函数发送相关命令对SD卡版本类型进行判断,同时返回响应信息。
关于sd.c文件中其他函数,程序中都有相应注释,可结合注释以及《 Physical Layer Simplified Specification V2.0》手册进行理解。
部分代码如下:
6) main.c文件主要进行相关函数初始化以及SD卡插入检测、初始化检测以及读取SD卡容量大小
|