TI中文支持网
TI专业的中文技术问题咨询交流网站

CC1310: sdraw

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)

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: sdraw
分享到: 更多 (0)