请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C129XNCZAD 我有一个带有 SDCard 的 tm4c129xnczad 微控制器、它通过 SPI3连接到它
1 GB 大小的 SDCard 有2个卷,每个卷大约500 MB
我想将数据写入每个可以访问第一个卷的文件中、但无法通过我所用的代码访问第二个卷、我所执行的步骤就是这样
首先,我开始安装这两卷
EIO_vmturnSDCardPowerON(); UTIL_vNonOSDelayMiliSeconds(200);/* this delay is gurantee the proper rest for the SD card */ /* Mount and register the FSHELL Card */ SDSPI_Params_init(&objstrsdspiParameters); objsdspiHandle = SDSPI_open(Board_SDSPI0, DRIVE_NUM, &objstrsdspiParameters); if(objsdspiHandle == STD_NULL) { FSHELL_vmLogError0(&objstrFSHELLModuleInfoType, "Can't mount SD card"); } else { FSHELL_vmLogActivity1(&objstrFSHELLModuleInfoType, "SD card is mounted Drive:%u", DRIVE_NUM); bSdMountState = STD_TRUE; } objsdspiHandle = SDSPI_open(1, 1, &objstrsdspiParameters); if(objsdspiHandle == STD_NULL) { FSHELL_vmLogError0(&objstrFSHELLModuleInfoType, "Can't mount SD card"); } else { FSHELL_vmLogActivity1(&objstrFSHELLModuleInfoType, "SD card is mounted Drive:%u", 1); bSdMountState = STD_TRUE; }
然后,我使用 了 studio.h (fopen、fclose、fwrite)函数中 的标准文件 API,这样
#include <stdio.h> function (){ ... INT8S *ps8ProgFilePath = "fat:0:/ProgBlocks/Blocks.txt"; INT8S *ps8ProgFilePath_1 = "fat:1:/ProgBlocks/Blocks.txt"; FRESULT objFRESULT = FR_DISK_ERR; FILE *pSourceFile; ... objFRESULT = f_mkdir("/ProgBlocks"); if((objFRESULT == FR_OK)||(objFRESULT == FR_EXIST)) /* if folder is created or alredy existed */ { pSourceFile = fopen((const INT8S*)ps8ProgFilePath, "a"); if(pSourceFile == STD_NULL) { SCFGM_vmLogError1(&objstrSCFGMModuleInfoType, "\"%s\" could not be created", (INT32U)ps8ProgFilePath); } else { u32NumBytesWritten = fwrite((INT8S*)ps8Data,1,(MAX_BLOCK_ID_STRING+(u32BlockLen*3)),pSourceFile); if (u32NumBytesWritten != (MAX_BLOCK_ID_STRING+(u32BlockLen*3))) { SCFGM_vmLogError1(&objstrSCFGMModuleInfoType, "\"%s\"Err wrt Blk", (INT32U)ps8ProgFilePath); } } if(fclose(pSourceFile) != 0) { SCFGM_vmLogError1(&objstrSCFGMModuleInfoType, "\"%s\" could not be Close", (INT32U)ps8ProgFilePath); } } .... }
因此,我可以访问第一个卷“fat:0:”,但无法以相同的方式写入或甚至访问第二个卷“fat:1:”
那么、问题是、我甚至可以访问同一 SD 卡中的2个卷、如何访问?