打印

【数码相框】基于STM32的 SD卡读取的问题..

[复制链接]
3374|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jaylondon|  楼主 | 2010-8-21 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是电子白菜的DX32板子
准备将图片数据以TXT的格式放在SD卡里,将数据读出后都存到一个大数组里面。
交给TFT去显示。

思路很简单。
现在的问题是 这个数据比较大,320*240的屏 一幅图有153600个数据... 好大。

下面是电子白菜给的DEMO,用于从SD卡的TXT中读取数据。他这个数据是读一组输出一组的。

void TestSD(void)
{
FATFS fs;
    FIL fil;
FRESULT res;         //文件系统返回信息
char byte[65];           // 这个byte的大小是没有限制的,当然不能超过片内的ram。
// 所以,想全部读出可以直接修改她的大小。
    u32 len;

f_mount(0,&fs);//注册一个文件系统
res=f_open(&fil,"/BWSTDO/test.txt",FA_OPEN_EXISTING|FA_READ);
    if(res!=FR_OK)  
    {
        USART1_Puts("SD卡打开文件失败\r\n");
        return;
    }
    //读取文件并打印到串口上
    for(;;)  
{
        res = f_read(&fil, byte, sizeof(byte)-1, &len);
            if (res || len == 0)  
            break;   // error or eof
            byte[len]='\0';
        USART1_Puts(byte);
}  

    f_close(&fil);
f_mount(0, NULL);
}

读出数据后用串口输出。我注意到这里他定义的byte是只有65.
我询问过他,他说这样做的目的是为了节省ram,不错。如果我想一次性读取txt中的所有数据的话。
我把byte的大小改为我所需要的数组长度:byte[153600]
程序运行到这句:res=f_open(&fil,"/BWSTDO/test.txt",FA_OPEN_EXISTING|FA_READ);
进入这个中断
/*******************************************************************************
* Function Name  : HardFault_Handler
* Description    : This function handles Hard Fault exception.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void HardFault_Handler(void)
{
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {
  }
}

在我看来在TFF文件系统里,byte的值是有范围的,不能乱给,还是因为sizeof(byte)-1 这个函数是有范围的??

------------------------------------痛苦的分割线------------------------------------------------------


可能说的有点乱。
总的来说,我的目的是,想把已知大小(153600)的所有数据都从SD的txt文件中读出,然后存入一个大数组中,TFT显示根据这个数组的数据进行显示。

现在我的问题是,DEMO中的方法是一次读出一组数据。我想把这一组一组的数据按顺序存入大数组中(假设为bmp_sd[] ).
我要怎么做... 能怎么做.. 昨晚搞到2点多,今天到现在还是没有解决,无奈前来求助各位。


下面有两个文件,一个是电子白菜给的读取SD卡txt文件的DEMO
另一个是我修改的,打算从SD卡中读取数据交给TFT做显示的文件。




要是这个问题解决了,等我整理完成,我所有代码原理图 开源上传哈!

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

87

帖子

0

粉丝