OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13779|回复: 2

求教:在UCGUI下做JPG解码时无法显示,软件仿真能通过,但液晶屏无任何反应,,,

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2011-4-26
在线时间
0 小时
发表于 2011-4-26 22:04:18 | 显示全部楼层 |阅读模式

用了原子哥JPG解码码源,显示部分:

定义图片显示格式:
unsigned short  JPG2BMP[256]={0};

GUI_BITMAP JPG={
  16, /* XSize */
  16, /* YSize */
  32, /* BytesPerLine */
  16, /* BitsPerPixel */
  (const unsigned char *)JPG2BMP,  /*指向位图数据*/
  NULL,  /* 指向调色板 */
  GUI_DRAW_BMP565
};



//将解出的字按RGB形式存储 lpbmp (BGR),(BGR) ......入口Y[] U[] V[] 出口lpPtr  
void StoreBuffer()   //一次解出16*16个点
{
 short i,j;      
 unsigned char R,G,B;
 int y,u,v,rr,gg,bb;
 unsigned int color,count;
   count=0;

 for(i=0;i<SampRate_Y_V*8;i++)
 {
  if((sizei+i)<ImgHeight)// sizei表示行 sizej 表示列
  {                        
   for(j=0;j<SampRate_Y_H*8;j++)
   {
    if((sizej+j)<ImgWidth)
    {
     y=Y[i*8*SampRate_Y_H+j];
     u=U[(i/V_YtoU)*8*SampRate_Y_H+j/H_YtoU];
     v=V[(i/V_YtoV)*8*SampRate_Y_H+j/H_YtoV];
     rr=((y<<8)+18*u+367*v)>>8;
     gg=((y<<8)-159*u-220*v)>>8;
     bb=((y<<8)+411*u-29*v)>>8;
     R=(unsigned char)rr;
     G=(unsigned char)gg;
     B=(unsigned char)bb;
     if (rr&0xffffff00) if (rr>255) R=255; else if (rr<0) R=0;
     if (gg&0xffffff00) if (gg>255) G=255; else if (gg<0) G=0;
     if (bb&0xffffff00) if (bb>255) B=255; else if (bb<0) B=0; 
        color=R>>3;
     color=color<<6;
     color |=(G>>2);
     color=color<<5;
     color |=(B>>3);
     //在这里送给LCD显示
      JPG2BMP[count]=color;
     //POINT_COLOR=color; 
     //LCD_L0_SetPixelIndex(sizej+j,sizei+i,color);//显示图片 
     count++;  
    }
    else  break;

   }  
     
  }

  else break;
 }

GUI_DrawBitmap(&JPG, sizej, sizei);

 

}
   GUI下扫描平等方向与JPG解码时的数据增长方向都是左到右,再上到下的方向,按道理GUI_DrawBitmap()应该可以直接显示才对啊,但是仿真时可以通过,解码时JPG2BMP[256]数组里的数据也准确,但是液晶屏却什么反应都木有,,,,,,,,,,,
可是显示存放在片内FLASH的图片使用GUI_DrawBitmap()又可以正常显示,小弟愚昧,还望大家赐教啊!!!




 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-4-26 22:55:59 | 显示全部楼层
完全没显示?
JPG2BMP,这个是你的显存么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2011-4-26
在线时间
0 小时
 楼主| 发表于 2011-4-27 13:24:53 | 显示全部楼层
感谢原子哥回帖,嗯,JPG2BMP这个是显存的,液晶屏没有任何反应,但是软件仿真又没有错,真是头大了,怀疑是解码的时候影响了GUI的LOOP消息,让GUI所有窗口都挂起了,,,,,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 16:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表