Part Number:CC1310
#define BUFFSIZE 10000
unsigned char textarray[BUFFSIZE];
result = SD_write(sdHandle, textarray, STARTINGSECTOR, sectors);
给sd写数据,这个BUFFSIZE 设置10000,程序报错,如何给sd卡写更多的数据
Cherry Zhou:
您好,我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!
,
desheng li:
例程中:BUFFSIZE 是1024;写完之后,再写data,不覆盖之前的,需要怎么做
,
Cherry Zhou:
好的都帮你跟进给工程师了,应该下周工作日内给到您答复。
,
YiKai Chen:
在英文论坛寻給你建議了,不過你的問題似乎是一个外接传感器,一个外接sd卡共用spi導致的?
,
desheng li:
您好,
1.只用sdraw例程,如何给sd写入更多的数据,例程中unsigned char textarray[BUFFSIZE];数组只有1024,如何写入更多数据?
2.sd卡写入地址是哪函数
,
YiKai Chen:
可以試試用SD_write的第三個參數去指定不同的sector去写入更多数据
,
desheng li:
result = SD_write(sdHandle, textarray, STARTINGSECTOR, sectors);
STARTINGSECTOR = 0,sectors=2;
您好,比如第一次写1024字节数据,占据2个扇区,第二次写1024字节数据,不覆盖第一次的数据
STARTINGSECTOR这个值需要怎么变化?
,
YiKai Chen:
建議你整個讀出來,修改第二次要写的1024字节数据,然後在整個写入就好
,
desheng li:
写一次读一次,不符合需求啊,先存满,在全部读写出来,
,
YiKai Chen:
第一次写1024字节数据,占据2个扇区,第二次写1024字节数据,不覆盖第一次的数据,第二次写STARTINGSECTOR这个值應該要改成2
,
desheng li:
只需要把STARTINGSECTOR递增2,我试了,写不进去,失败
#if (WRITEENABLE)while(1){ for (i = 0; i < BUFFSIZE; i++) { textarray[i] = rand(); } Display_printf(display, 0, 0, "Writing the array…\n"); result = SD_write(sdHandle, textarray, STARTINGSECTOR, sectors); if (result != SD_STATUS_SUCCESS) { Display_printf(display, 0, 0, "Error writing to the SD card\n"); while (1); } STARTINGSECTOR=STARTINGSECTOR+2; if(sectors>492544) { break; }}
,
desheng li:
还有一个问题,现在SD_initialize失败了,无法调试程序了
,
YiKai Chen:
SD_initialize失败當然就寫不進去,你看看是不是又是腳位設置的問題吧,先解決SD_initialize失败的問題在說
,
desheng li:
之前运行的好好的,写了几次数据,突然初始化失败,
* Set this constant to 1 in order to write to the SD card. * WARNING: Running this example with WRITEENABLE set to 1 will cause * any filesystem present on the SD card to be corrupted!
是不是这个问题?
,
YiKai Chen:
可能是SD卡寫壞了,把它format后再試試
,
desheng li:
format,有没有例程,不太懂
,
YiKai Chen:
哪有什麼format例程,是請你把SD卡拿到你的PC去格式化后再試試看
,
desheng li:
是这个芯片,可以拿到PC去格式化
,
YiKai Chen:
芯片? SD card不會是長這樣的吧?
,
desheng li:
是这个存储芯片,
ZDSD04GLGEAG
,
YiKai Chen:
沒用過ZDSD04GLGEAG這個芯片,你可能要找原廠支援,或是換個板子繼續測試
,
desheng li:
两个芯片都这样了,初始化失败
,
YiKai Chen:
那只能找ZDSD04GLGEAG原廠去問問囉
,
desheng li:
可不可以通过软件对齐格式化
,
YiKai Chen:
如果你連SD_initialize都失败,要怎樣通过软件对齐格式化?
,
desheng li:
#if (WRITEENABLE)while(1){ for (i = 0; i < BUFFSIZE; i++) { textarray[i] = rand(); } Display_printf(display, 0, 0, "Writing the array…\n"); result = SD_write(sdHandle, textarray, STARTINGSECTOR, sectors); if (result != SD_STATUS_SUCCESS) { Display_printf(display, 0, 0, "Error writing to the SD card\n"); while (1); } STARTINGSECTOR=STARTINGSECTOR+2; if(sectors>492544) { break; }
程序这样写,每写1024字节,STARTINGSECTOR递增2,可以么
,
YiKai Chen:
STARTINGSECTOR是個define,"STARTINGSECTOR=STARTINGSECTOR+2;"這樣的語法應該編譯不過吧,應該是要改成變數才行
,
desheng li:
您好,这样改了,第二次写入失败了
,
YiKai Chen:
第二次写入失败時SD_write的返回值是什麼?
,
desheng li:
result = -1
,
YiKai Chen:
/*! * @brief Generic error status code returned by SD_control(). * * SD_control() returns SD_STATUS_ERROR if the control code * was not executed successfully. */#define SD_STATUS_ERROR (-1)