(4)调用SD_SendCmd函数发送相关命令对SD卡版本类型进行判断,同时返回响应信 息。关于sd.c文件中其他函数,程序中都有相应注释,可结合注释以及《 Physical Layer Simplified Specification V2.0》手册进行理解。部分代码如下:6) main.c文件主要进行相关函数初始化以及SD卡插入检测、初始化检测以及读取SD卡容量大...
可以操作 Count = 200; //发卡初始化指令CMD55+ACMD41 do { //CMD55,以强调下面的是ACMD命令 SD_SendCmd(SD_CMD_APP_CMD, 0, 0xFF); // SD_IN_IDLE_STATE if (!SD_GetResponse(SD_RESPONSE_NO_ERROR)) return SD_RESPONSE_FAILURE
其中diskio.c 这个文件是文件系统底层和SD驱动的中间接口的实现代码,移植的时候需要改写在diskio.h中声明的那几个函数,代码在ff.c中被调用;diskio.h定义了FatFs用到的宏;ff.c是一般FatFs的代码文件;ff.h是一般FatFs包含的头文件;integer.h是内部基本类型的定义。 option文件夹下是一些可选的外部c文件,包含了...
= V2HC) 455 sector *= 512; //转换为字节地址 456 if(cnt == 1) 457 { 458 r1 = SD_SendCMD(CMD24, sector, 0x01); //读命令 459 if(r1 == 0) //指令发送成功 460 r1=SD_SendBlock(buf, 0xFE); //写512个字节 461 }else 462 { 463 if...
答案对人有帮助,有参考价值0 #include "sd.h"#include "myfun.h" //这是振南的公共函数头文件 #...
(4)调用SD_SendCmd函数发送相关命令对SD卡版本类型进行判断,同时返回响应信息。关于sd.c文件中其他...
18 /* Private function prototypes ---*/ 19 static int SD_SendCMD(uint8_t cmd, uint32_t arg, uint8_t crc); 20 static uint8_t SD_ReceiveData(uint8_t *data, uint16_t len); 21 static uint8_t SD_SendBlock(uint8_t*buf, uint8_t cmd); 22 /* Private user code ---*/ 23 2...
(void); 52static uint8_t send_cmd (uint8_t cmd,uint32_t arg); 53static void set_spi_slow(); 54static void set_spi_fast(); 55 56/** 57 * @brief init sd card 58 * 59 */ 60uint8_t spi_sd_init() 61{ 62 uint8_t n, cmd, ty, ocr[4]; 63 uint16_t i; 64 65 66...
(4)调用SD_SendCmd函数发送相关命令对SD卡版本类型进行判断,同时返回响应信 息。 关于sd.c文件中其他函数,程序中都有相应注释,可结合注释以及《 Physical Layer Simplified Specification V2.0》手册进行理解。 部分代码如下: 6) main.c文件主要进行相关函数初始化以及SD卡插入检测、初始化检测以及读取SD卡容量大小 ...
这个SD_SendCmd发送命令的函数包含命令号cmd、命令参数Arg以及校验码Crc三个参数,它们组成一个完整的6个字节命令,在函数的末尾通过一个for循环调用SD_WriteByte函数把这些命令数据发送到SD卡。 组成命令的这6个字节内容说明如下: Frame[0]:它的值是命令号cmd跟起始位(固定为0)、传输标志(固定为1)的组合,所以其...