发 帖  
原厂入驻New
emwin控件使用外部flash存储图片出错的解决办法?
37 emWin
分享
各位大神好,现在我使用emwin中的控件image显示图片,由于图片太多,所以放在外部的flash芯片中。程序代码如下:
[C] 纯文本查看 复制代码
unsigned char _acBuffer[320*4*8];int _GetData(void * p, const U8 ** ppData, unsigned NumBytesReq, U32 Off)  {static int FileAddress = 0;UINT NumBytesRead;FIL *PicFile;PicFile = (FIL *)p;/** Check buffer size*/IF (NumBytesReq > sizeof(_acBuffer)) {NumBytesReq = sizeof(_acBuffer);}/** Set file pointer to the required position*/if(Off == 1) FileAddress = 0;else FileAddress = Off;result =f_lseek(PicFile, FileAddress);/** Read data into buffer*/result = f_read(PicFile, _acBuffer, NumBytesReq, &NumBytesRead);/** Set data pointer to the beginning of the buffer*/*ppData = (const U8 *)_acBuffer;/** Return number of available bytes*/return NumBytesRead;}
[C] 纯文本查看 复制代码
void displayImageFromExFlash(IMAGE_Handle hObj,const TCHAR* path){    FRESULT res_flash;   res_flash = f_open(&fnew1, path, FA_OPEN_EXISTING | FA_READ);   IMAGE_SetBMPEx ( hObj, _GetData, &fnew1);      f_close(&fnew1);}
发现程序执行到IMAGE_SetBMPEx ( hObj, _GetData, &fnew1);并不会调到int _GetData(void * p, const U8 ** ppData, unsigned NumBytesReq, U32 Off) 中,而是直接执行f_close(&fnew1);过后再执行_GetData(),
导致显示不了图片,请问这是什么原因呢?谢谢
0
2020-8-28 08:02:27   评论 分享淘帖 邀请回答
1个回答

只有小组成员才能发言,加入小组>>

293个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

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