硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2470|回复: 5
收起左侧

[emWin] 使用外部存储的STREAM

[复制链接]

17

主题

70

回帖

121

积分

初级会员

积分
121
发表于 2018-8-20 21:31:36 | 显示全部楼层 |阅读模式
在使用外部stream的过程中,出现以下问题:
1、将图片通过BmpCvt转换完后存储在flash中,通过加载到内存的方式显示,发现.dat文件生成的调色板是FORMAT_565,显示出来红蓝反了。手动修改.dat文件为FORMAT_M565,显示正常。但是怎么都没法通过BmpCvt生成FORMAT_M565格式。
2、使用带EX的显示函数,显示480*320*2=300kb图片。在回调函数中,发现第一次读取16字节,第二次请求读取300kb由于缓存只有4kb,所以只读了4k,参数正确返回。然后就跳出了GUI_DrawStreamedBitmapExAuto。完全没法显示!
  1. static int StreamedBitmap_GetData(void * p, const U8 ** ppData, unsigned NumBytesReq, U32 Off)
  2. {
  3.         static int readaddress=0;
  4.         UINT NumBytesRead;
  5.         U32        flash_pos;
  6.         
  7.         #if SYSTEM_SUPPORT_UCOS
  8.                 OS_CPU_SR cpu_sr;
  9.         #endif
  10.         
  11.         flash_pos = *(U32 *)p;
  12.         
  13.         if (NumBytesReq > sizeof(StreamBuffer))
  14.         {
  15.                 NumBytesReq = sizeof(StreamBuffer);
  16.         }

  17.         if(Off == 1)
  18.                 readaddress = 0;
  19.         else
  20.                 readaddress=Off;
  21.         
  22.         #if SYSTEM_SUPPORT_UCOS
  23.                 OS_ENTER_CRITICAL();
  24.         #endif
  25.         
  26.         //从flash读取NumBytesReq字节
  27.         //。。。
  28.         
  29.         #if SYSTEM_SUPPORT_UCOS
  30.                 OS_EXIT_CRITICAL();        
  31.         #endif
  32.         
  33.         *ppData = (uint8_t *)StreamBuffer;
  34.         NumBytesRead = NumBytesReq;
  35.         return NumBytesRead;
  36. }
复制代码



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115773
QQ
发表于 2018-8-21 09:38:27 | 显示全部楼层
1、图片发上来我试试。
2、这个就是你程序设计问题了。
回复

使用道具 举报

17

主题

70

回帖

121

积分

初级会员

积分
121
 楼主| 发表于 2018-8-21 21:11:50 | 显示全部楼层
本帖最后由 1314一路向前 于 2018-8-21 21:13 编辑
eric2013 发表于 2018-8-21 09:38
1、图片发上来我试试。
2、这个就是你程序设计问题了。

第二点,我就是用这个函数GUI_DrawStreamedBitmapExAuto(StreamedBitmap_GetData,&Flash_BinLayout.flash_addr,x,y);以及上面的那个GetData函数。
signin1.bmp
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115773
QQ
发表于 2018-8-22 01:59:08 | 显示全部楼层
QQ截图20180822012826.png
回复

使用道具 举报

17

主题

70

回帖

121

积分

初级会员

积分
121
 楼主| 发表于 2018-8-22 11:07:53 | 显示全部楼层

试了,这个只会修改数据的内容。不会修改调色板
现在主要是第二个问题,没法直接边读flash边显示。我看教程里也只有加载到ram的stream显示历程。你有没有使用外部flash存储stream,然后边读flash边显示的历程呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115773
QQ
发表于 2018-8-22 13:02:08 | 显示全部楼层
1314一路向前 发表于 2018-8-22 11:07
试了,这个只会修改数据的内容。不会修改调色板
现在主要是第二个问题,没法直接边读flash边显示。我看 ...

1、没有边读边写的例子。

2、这个是565或者M565都没有关系的,

565流位图:
1.png


M565流位图:
2.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-17 09:09 , Processed in 0.306529 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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