|
#include "EXBMP.h"
FATFS fs1;
static char _acBuffer[480*4];
FRESULT result;
FIL file;
static int _GetData(void *p,const u8 **ppData,unsigned NumBytesReq,u32 Off)
{
static int FileAddress=0;
unsigned int NumBytesRead;
FIL *PicFile;
PicFile=(FIL*)p;
if(NumBytesReq>sizeof(_acBuffer))
{
NumBytesReq=sizeof(_acBuffer);
}
if(Off==1)FileAddress=0;
else FileAddress=Off;
result=f_lseek(PicFile,FileAddress);
result=f_read(PicFile,_acBuffer,NumBytesReq,&NumBytesRead);
*ppData=(const u8*)_acBuffer;
return NumBytesRead;
}
void ShowBMPEx(const char *sFilename)
{
f_mount(0,&fs1);
result=f_open(&file,sFilename,FA_OPEN_EXISTING|FA_READ|FA_OPEN_ALWAYS);
if(result!=FR_OK)
{
return;
}
GUI_BMP_DrawEx(_GetData,&file,0,0);
f_close(&file);
f_mount(0,0);
}
我做了如此的移植,现在问题是出现绿色的色块(本来不应该如此的)。同时我对于 GUI_BMP_DrawEx(_GetData,&file,0,0);这个_GetData函数怎么不用赋值就直接用了??不明白这是《基于STEmwin的32开发与实践》书上贴图出来的代码我做的移植。求解答 |
|