你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

sd卡读出数据后,如何送入ILI9325的屏进行显示

[复制链接]
hpdell 提问时间:2010-7-7 09:50 /
请教高手:我现在可以从SD卡中读出数据(抄袭的),但是当送入TFT屏显示就不对了,用串口查看数据,没有错误的,相关代码如下:
我的QQ:519212866
 
//图片显示函数,此函数显示一个图片是正常的
uchar tupian[]=
{
0X00,0X34,0X56,
0X00,0X34,0X56,
0X00,0X34,0X56,
0X00,0X34,0X56,
0X00,0X34,0X56,
0X00,0X34,0X56,
0X00,0X34,0X56,
}
void GUI_DisPicture(uchar x, uint y, uchar length, uint high ,const uchar *pic)
{
   uint temp=0,tmp=0,num=0;
 LCD_setwindow(x,y,x+length-1,y+high-1);
 num=length*high*2;
 do
 { 
    temp=pic[tmp]|( pic[tmp+1]FileSize-offset;
  znFAT_Seek_File(pfi,offset);
 
  znFAT_ReadSector(pfi->FileCurSector,znFAT_Buffer);
  for(i=pfi->FileCurPos;iBytesPerSector;i++)
  {
   if(counter>=len)
   {
     return len;
   }
   (*pfun)(znFAT_Buffer);
   counter++;
   pfi->FileCurPos++;
   pfi->FileCurOffset++;
  }
  if(pfi->FileCurSector-(SOC(pfi->FileCurCluster))!=(pArg->SectorsPerClust-1))
  {
   for(j=pfi->FileCurSector+1;jFileCurCluster))+pArg->SectorsPerClust;j++)
   {
    znFAT_ReadSector(j,znFAT_Buffer);
    pfi->FileCurSector=j;
    for(i=0;iBytesPerSector;i++)
    {
     if(counter>=len)
     {
       return len;
     }
     (*pfun)(znFAT_Buffer);
     counter++;
     pfi->FileCurPos++;
     pfi->FileCurOffset++;
    }
   }
  }
  temp=(len-counter)/(pArg->BytesPerSector*pArg->SectorsPerClust);
  for(k=0;kFileCurCluster=znFAT_GetNextCluster(pfi->FileCurCluster);
   for(j=(SOC(pfi->FileCurCluster));jFileCurCluster))+pArg->SectorsPerClust;j++)
   {
    znFAT_ReadSector(j,znFAT_Buffer);
    pfi->FileCurSector=j;
    for(i=0;iBytesPerSector;i++)
    {
     if(counter>=len) 
   {
       return len;
     }
     (*pfun)(znFAT_Buffer);
     counter++;
     pfi->FileCurOffset++;
  pfi->FileCurPos++;
  pfi->FileCurPos%=pArg->BytesPerSector;
    }
   }   
  }
  pfi->FileCurCluster=znFAT_GetNextCluster(pfi->FileCurCluster);
  temp=(SOC(pfi->FileCurCluster))+((len-counter)/pArg->BytesPerSector);
  pfi->FileCurSector=(SOC(pfi->FileCurCluster));
  for(j=(SOC(pfi->FileCurCluster));jFileCurSector=j;
   for(i=0;iBytesPerSector;i++)
   {
    if(counter>=len)
    {
      return len;
    }
    (*pfun)(znFAT_Buffer);
    counter++;
    pfi->FileCurPos++;
    pfi->FileCurPos%=pArg->BytesPerSector;
    pfi->FileCurOffset++;
   }  
  }
  pfi->FileCurSector=j;
  znFAT_ReadSector(pfi->FileCurSector,znFAT_Buffer);
  temp=len-counter;
  for(i=0;i=len)
   {
     return len;
   }
   (*pfun)(znFAT_Buffer);
   counter++;
   pfi->FileCurPos++;
   pfi->FileCurPos%=pArg->BytesPerSector;
   pfi->FileCurOffset++; 
  }
 }
 else
 {
  len=0;
 }
 return len;

 
void main()
{
GUI_DisPicture(0, 0, 240, 320 ,tupian);  //比如是这个数组里面的数据时240*320的数据,这个显示是正常的
 
 FAT_Read_FileX(&FileInfo,0,FileInfo.FileSize,disp_sd);  //这样调用后,TFT屏上就显示几个点,请问要怎样修改才能够让他把读出的数据(图片)正常的显示出来啊?????????????
}
 
 
收藏 评论6 发布时间:2010-7-7 09:50

举报

6个回答
废鱼 回答时间:2010-7-7 11:07:27

RE:sd卡读出数据后,如何送入ILI9325的屏进行显示

你先把SD卡读出来的数据放入到数组中,再使用GUI_DisPicture(0, 0, 240, 320 ,tupian);  来显示是否正确。
hpdell 回答时间:2010-7-8 16:21:36

RE:sd卡读出数据后,如何送入ILI9325的屏进行显示

从SD卡里面读出的数据,我用串口查看是正确的。如果显示一个320*240的彩色图片,那数据量就很大了,我想直接从SD卡里面读出的数据就送去显示,这个该怎么改啊?????
hubolang 回答时间:2010-7-20 08:56:14

RE:sd卡读出数据后,如何送入ILI9325的屏进行显示

那个高人知道还请速速简答啊!!谢谢
废鱼 回答时间:2010-8-3 15:20:11

RE:sd卡读出数据后,如何送入ILI9325的屏进行显示

直接选择点点显示,每次读取一点,直接就显示出来。
r051463438 回答时间:2010-8-20 09:46:56

RE:sd卡读出数据后,如何送入ILI9325的屏进行显示

你读的是什么格式的图片??
一般都是处理最简单的格式BMP,如果你也是读的BMP图片的数据,那么,
在SD卡里直接读出来的图片数据是要经过处理的,不是直接能显示的,
至于怎么处理,那就要看你的BMP图片是几位的位图了,网上查找一下BMP图片的格式资料看看。
Evering 回答时间:2014-3-24 10:32:08

回复:sd卡读出数据后,如何送入ILI9325的屏进行显示

stm32  读取SD卡 图片是直接读取 图片文件 还是读取图片数据文件啊

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版