硬汉嵌入式论坛

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

[emWin] dialog显示bmp图片问题

[复制链接]

7

主题

19

回帖

7

积分

新手上路

积分
7
发表于 2016-8-6 15:31:42 | 显示全部楼层 |阅读模式
大神好,
我想在对话框里用读取sd卡文件的方式显示bmp图片,总会进入hardfault。而如果用生成c文件的方式,就没问题。

图片控件在资源列表里注册过了,我把显示代码放在了WM_INIT_DIALOG里面,显示代码如下,

    //
    // Initialize  Backgnd
    //
    hItem = WM_GetDialogItem(pWin, GUI_ID_IMAGE0);
    result = f_open(&picture_fil, "1:/picture/apple1.bmp", FA_OPEN_EXISTING | FA_OPEN_ALWAYS | FA_READ);
    if(result != FR_OK)
    {
        printf("FR not OK");
        return;
    }
    //res = GUI_BMP_DrawEx(GetData, &picture_fil, 0, 0);
        IMAGE_SetBMPEx(hItem, GetData, &picture_fil);

GetData函数已经检验过没有问题(在桌面用GUI_BMP_DrawEx函数显示没有问题),图片文件也可以打开。
图片大小40*36像素,放在sd卡中。
我在GetData函数里用串口输出被调用的次数和读取的字节个数,发现调用到第6次就会进入hardfault,如图
12.png



我的问题在哪里呢?
求问,应该怎么在对话框里显示图片呢?
1.png
回复

使用道具 举报

4

主题

21

回帖

33

积分

新手上路

积分
33
发表于 2016-8-7 16:22:01 | 显示全部楼层
emwin显示外挂图片,是要做底层驱动修改的,可以参考我们GLCD的stm32例程,GLCD外挂有nand-flash,emwin通过发指令调用显示GLCD里面的图片,不过stm32例程emwin底层驱动部分没有注释,估计会看的够呛,neqee.com
精美、便捷的emWin界面设计-GLCD
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-8-8 09:52:03 | 显示全部楼层
GetData函数有用到一个数组,这个组数必须要能够存储一行你所加载的BMP图片,比如用的图片是800*480分辨率,24位色的,
那么这个数组大小至少得是buf[800*3]。
回复

使用道具 举报

7

主题

19

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2016-8-10 21:04:30 | 显示全部楼层

回 eric2013 的帖子

eric2013:GetData函数有用到一个数组,这个组数必须要能够存储一行你所加载的BMP图片,比如用的图片是800*480分辨率,24位色的,
那么这个数组大小至少得是buf[800*3]。 (2016-08-08 09:52) 
多谢版主回复,我用的是240*320的屏,图片16位色,数组是240*4,这个应该没有问题
我在桌面就可以显示,但是到对话框就不行了
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2016-8-10 22:20:12 | 显示全部楼层
请问16bpp是怎么转换和显示的呢
回复

使用道具 举报

7

主题

19

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2016-8-10 23:12:32 | 显示全部楼层

回 laoshi 的帖子

laoshi:请问16bpp是怎么转换和显示的呢 (2016-08-10 22:20) 
用mdk里的那个软件就可以转为16bpp的,我用的emwin显示的,安富莱有各种显示方法的教程
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 00:00 , Processed in 0.040863 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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