TI中文支持网
TI专业的中文技术问题搜集分享网站

28377D SD卡读写问题

由于没有接触过SD卡,经过这两天的接触,在开发板(采用SPI方式)上修改control提供的demo程序,有个问题请教大家:

变量定义如下:

static FATFS g_sFatFs;

BYTE textFileBuffer[] = {0,1,2,3,4,5};
FRESULT res=FR_OK;
WORD br;
FIL fsrc;         /* file objects */

FRESULT fresult;
 char m[]="0:/fatfs.txt";

主流程如下(demo中 while(1)之后的程序被我屏蔽了):

 fresult = f_mount(0, &g_sFatFs);
    if(fresult != FR_OK)
    {
        UARTprintf("f_mount error: %s\n", StringFromFresult(fresult));
        return(1);
    }
    res = f_open( &fsrc , m , FA_CREATE_ALWAYS | FA_WRITE);//FA_CREATE_NEW | FA_WRITE);

           if ( res == FR_OK )
        {
          /* Write buffer to file */
          res = f_write(&fsrc, textFileBuffer, sizeof(textFileBuffer) , &br);
          /*close file */
          f_close(&fsrc); 
        }  asm(" ESTOP0");

程序执行结果:

SD卡创建了fatfs.txt,但是没有内容,单步调试,发现 f_write的执行结果是FR_RW_ERROR,这个是什么原因呢?

另外,个人感觉TI提供的这个demo不怎么样,底层驱动mmc-F2837x.C写得很乱,不规范,而且FATFS居然是用R0.04b版本,ff.c里面删除很多函数,程序详见附件。

Clack Tung:

在线等

由于没有接触过SD卡,经过这两天的接触,在开发板(采用SPI方式)上修改control提供的demo程序,有个问题请教大家:

变量定义如下:

static FATFS g_sFatFs;

BYTE textFileBuffer[] = {0,1,2,3,4,5};
FRESULT res=FR_OK;
WORD br;
FIL fsrc;         /* file objects */

FRESULT fresult;
 char m[]="0:/fatfs.txt";

主流程如下(demo中 while(1)之后的程序被我屏蔽了):

 fresult = f_mount(0, &g_sFatFs);
    if(fresult != FR_OK)
    {
        UARTprintf("f_mount error: %s\n", StringFromFresult(fresult));
        return(1);
    }
    res = f_open( &fsrc , m , FA_CREATE_ALWAYS | FA_WRITE);//FA_CREATE_NEW | FA_WRITE);

           if ( res == FR_OK )
        {
          /* Write buffer to file */
          res = f_write(&fsrc, textFileBuffer, sizeof(textFileBuffer) , &br);
          /*close file */
          f_close(&fsrc); 
        }  asm(" ESTOP0");

程序执行结果:

SD卡创建了fatfs.txt,但是没有内容,单步调试,发现 f_write的执行结果是FR_RW_ERROR,这个是什么原因呢?

另外,个人感觉TI提供的这个demo不怎么样,底层驱动mmc-F2837x.C写得很乱,不规范,而且FATFS居然是用R0.04b版本,ff.c里面删除很多函数,程序详见附件。

Clack Tung:

一天了,没有一个TI的工程师出来答复我吗?

由于没有接触过SD卡,经过这两天的接触,在开发板(采用SPI方式)上修改control提供的demo程序,有个问题请教大家:

变量定义如下:

static FATFS g_sFatFs;

BYTE textFileBuffer[] = {0,1,2,3,4,5};
FRESULT res=FR_OK;
WORD br;
FIL fsrc;         /* file objects */

FRESULT fresult;
 char m[]="0:/fatfs.txt";

主流程如下(demo中 while(1)之后的程序被我屏蔽了):

 fresult = f_mount(0, &g_sFatFs);
    if(fresult != FR_OK)
    {
        UARTprintf("f_mount error: %s\n", StringFromFresult(fresult));
        return(1);
    }
    res = f_open( &fsrc , m , FA_CREATE_ALWAYS | FA_WRITE);//FA_CREATE_NEW | FA_WRITE);

           if ( res == FR_OK )
        {
          /* Write buffer to file */
          res = f_write(&fsrc, textFileBuffer, sizeof(textFileBuffer) , &br);
          /*close file */
          f_close(&fsrc); 
        }  asm(" ESTOP0");

程序执行结果:

SD卡创建了fatfs.txt,但是没有内容,单步调试,发现 f_write的执行结果是FR_RW_ERROR,这个是什么原因呢?

另外,个人感觉TI提供的这个demo不怎么样,底层驱动mmc-F2837x.C写得很乱,不规范,而且FATFS居然是用R0.04b版本,ff.c里面删除很多函数,程序详见附件。

lijingheng:

回复 Clack Tung:

28377现在用的人也不多,我也在等TI工程师回答我的问题呢。加油吧,兄弟。

由于没有接触过SD卡,经过这两天的接触,在开发板(采用SPI方式)上修改control提供的demo程序,有个问题请教大家:

变量定义如下:

static FATFS g_sFatFs;

BYTE textFileBuffer[] = {0,1,2,3,4,5};
FRESULT res=FR_OK;
WORD br;
FIL fsrc;         /* file objects */

FRESULT fresult;
 char m[]="0:/fatfs.txt";

主流程如下(demo中 while(1)之后的程序被我屏蔽了):

 fresult = f_mount(0, &g_sFatFs);
    if(fresult != FR_OK)
    {
        UARTprintf("f_mount error: %s\n", StringFromFresult(fresult));
        return(1);
    }
    res = f_open( &fsrc , m , FA_CREATE_ALWAYS | FA_WRITE);//FA_CREATE_NEW | FA_WRITE);

           if ( res == FR_OK )
        {
          /* Write buffer to file */
          res = f_write(&fsrc, textFileBuffer, sizeof(textFileBuffer) , &br);
          /*close file */
          f_close(&fsrc); 
        }  asm(" ESTOP0");

程序执行结果:

SD卡创建了fatfs.txt,但是没有内容,单步调试,发现 f_write的执行结果是FR_RW_ERROR,这个是什么原因呢?

另外,个人感觉TI提供的这个demo不怎么样,底层驱动mmc-F2837x.C写得很乱,不规范,而且FATFS居然是用R0.04b版本,ff.c里面删除很多函数,程序详见附件。

Clack Tung:

十天了,都没人回答?嗨,都没人气。

赞(0)
未经允许不得转载:TI中文支持网 » 28377D SD卡读写问题
分享到: 更多 (0)