硬汉嵌入式论坛

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

[emWin] bmp图片从flash读取和从sd卡读取,结果不一样!

[复制链接]

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2020-10-23 11:52:25 | 显示全部楼层 |阅读模式
在做emwin,做bmp图片显示实验。发现使用文件系统读取bmp图片,可以正常显示图片(GUI_BMP_Draw(_acbuffer, x0, y0);参考安富莱V6第十六章 bmp显示实验程序。)如果将bmp图片存储到外部spi flash中,不使用文件系统,直接使用spi通讯读取,
将文件系统中的读取接口/* 读取文件到动态内存 */
  /* 申请一块内存空间 并且将其清零 */
  hMem = GUI_ALLOC_AllocZero(file.fsize);

  /* 将申请到内存的句柄转换成指针类型 */
  _acBuffer = GUI_ALLOC_h2p(hMem);

  /* 读取文件到动态内存 */
  result = f_read(&file, _acBuffer, file.fsize, &bw);
  if (result != FR_OK)
  {
    return 0;
  }

GUI_BMP_Draw(_acBuffer, 0, 0);





更换为spi读取接口

  /* 申请一块内存空间 并且将其清零 */
  hMem = GUI_ALLOC_AllocZero(file.fsize);

  /* 将申请到内存的句柄转换成指针类型 */
  _acBuffer = GUI_ALLOC_h2p(hMem);

  /* 读取文件到动态内存 */
sf_ReadBuffer(_acBuffer,  _uiReadAddr,_uiSize)
GUI_BMP_Draw(_acBuffer,0,0);


则不能正常显示。

然后添加串口测试函数,打印读取到的数据
                                        for(num = 0;num<4096; num++)
                                        {
                                                printf("_acBuffer = %X\r\n",*_acBuffer);
                                                _acBuffer++;
                                        }

使用文件系统的数据,与使用spi 读取的数据不一致。但spi读取的数据与bmp图片一致

1、直接将bmp图使用 binary Viewer打开查看十六机制数据,或者使用visual studio(不是vscode)查看。
2、使用spi读取存入外部flash中的bmp数据(bmp未处理,直接以bmp格式存储)。通过串口打印,经对比,与软件打开bmp查看的十六进制     数据一致(99.9%)
3、使用fatfs从SD卡读取bmp,串口打印,发现数据与上面不一致


使用fatfs 读取初始化显示一次时,如图4,在屏幕一侧 有重影

如果将其放在whie 循环中一直显示。虽然有正常图片,但是一侧还是有重影,如图5

遇到的问题比较多






使用读取二进制软件直接打开bmp图片

使用读取二进制软件直接打开bmp图片

使用spi读取数据,与软件查看一致

使用spi读取数据,与软件查看一致

使用文件系统读取的数据,与前两者不一致

使用文件系统读取的数据,与前两者不一致

图片显示会在一侧,这是啥问题

图片显示会在一侧,这是啥问题

放在while循环移植读,能显示正常,但是顶层还是有拉丝

放在while循环移植读,能显示正常,但是顶层还是有拉丝
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115801
QQ
发表于 2020-10-23 13:05:33 | 显示全部楼层
问题这么神奇的吗,直接使用流位图看看,方便对比。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 14:16 , Processed in 0.261298 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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