Description
I put the image bin in nand flash without filesystem. I have parsed the bin file into lv_img_dsc_t, but it cannot be used normally after setting to image widget. Image widget displays “No data”. I made sure that the data has been parsed.
What MCU/Processor/Board and compiler are you using?
Core-M0,SYD8821
What do you want to achieve?
Display image normal
What have you tried so far?
Code to reproduce
Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.
The code block(s) should be formatted like:
/*You code here*/
lv_obj_t* lv_image = lv_img_create(tab1, NULL);
extern const lv_img_dsc_t bg4323;
lv_img_dsc_t flash_img;
loadBitmap(&flash_img);
lv_obj_set_size(lv_image, flash_img.header.w, flash_img.header.h);
lv_obj_align(lv_image, NULL, LV_ALIGN_CENTER, 0, 0);
lv_img_set_src(lv_image, &flash_img);
void loadBitmap(lv_img_dsc_t *image)
{
uint8_t *pbuf;
uint32_t file_size = 0x3eb4 - 4;
int secTime = file_size/4096;
int secOff = file_size%4096;
int i;
dbg_printf(" secTime = %d, secOff = %d\r\n", secTime, secOff);
pbuf = lv_mem_alloc(0x3eb4-4);
for (i=0; i<secTime; i++) {
SPI_Flash_Read(&pbuf[i*4096], 4+i*4096, 4096);
}
if (secOff>0) {
SPI_Flash_Read(&pbuf[secTime*4096], 4+secTime*4096, secOff);
}
image->header.cf = LV_IMG_CF_TRUE_COLOR;
image->header.always_zero = 0;
image->header.w = 100;
image->header.h = 100;
image->data_size = 0x3eb4 - 4; //去掉4字节的头,剩余的就是图片数据流长度
image->data = pbuf;
dbg_printf(" pbuf = [0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x]\r\n",
pbuf[0x580], pbuf[0x581], pbuf[0x582], pbuf[0x583], pbuf[0x584],
pbuf[0x3970], pbuf[0x3971], pbuf[0x3972], pbuf[0x3973], pbuf[0x3974]);
}
## Screenshot and/or video
If possible, add screenshots and/or videos about the current state.
> Blockquote