硬汉嵌入式论坛

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

[AppWizard] 刷新很慢

[复制链接]

5

主题

19

回帖

34

积分

新手上路

积分
34
发表于 2025-7-19 14:16:34 | 显示全部楼层 |阅读模式
硬件配置:STM32H7,16位SDRAM,4寸800*480的屏幕

用的 AppWizard V142_636编写的界面,下载到自己设计的板子上,用按键进行翻页,会有延时才能显示的状况,主界面的控件比较多,开机进入,会4秒左右的延迟才显示,进入到设置界面,控件少一点也会有2秒的延迟显示。

switch (pMsg->MsgId)
    {
        case WM_INIT_DIALOG:
            hTimer = WM_CreateTimer(WM_HBKWIN, 0, 100, 0);
        
            main_display_pro();
        
            break;
        
        case WM_TIMER:
            
            main_display_pro();//数据刷新赋值函数
        
            WM_RestartTimer(pMsg->Data.v, 100);
            break;
        
        case WM_KEY1_PRESS:
            APPW_SetVarData(ID_VAR_MAIN_TO_WORK,1);//设置此变量,APPWizard中进行showSCREEN
            WM_SetCallback(WM_HBKWIN,cbID_SCREEN_WORK);
            break;

请问哪位有经验的大神可以给提供下解决方案么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-19 17:53:09 | 显示全部楼层

回帖奖励 +2 个金币

是不是显示背景图,AppWizard的背景图绘制太慢。最好自己绘制。
回复

使用道具 举报

5

主题

19

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2025-7-20 20:24:50 | 显示全部楼层
eric2013 发表于 2025-7-19 17:53
是不是显示背景图,AppWizard的背景图绘制太慢。最好自己绘制。

eric,您好,界面里没有背景图,screen上新建了一个box,设置成黑色的了,加了两个汽车仪表,还有一些汽车上的指示灯图片,两个进度条,怎样自己绘制这些图片呢?用BmpCvtST V636软件转换添加到程序里么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-21 08:57:57 | 显示全部楼层
mnr2016222 发表于 2025-7-20 20:24
eric,您好,界面里没有背景图,screen上新建了一个box,设置成黑色的了,加了两个汽车仪表,还有一些汽 ...

使用存储设备绘制,提取绘制到存储设备里面,以后调用仅需调用仅需调用write at函数即可
回复

使用道具 举报

5

主题

269

回帖

284

积分

高级会员

积分
284
发表于 2025-7-21 09:32:59 | 显示全部楼层
估计是图片加载速度慢导致的,sdram空间够的话,可以在sdarm里创建一些memdev,开机先把图片加载到memdev,刷新的时候直接读memdev,这样界面切换会快很多
至于图片加载到memdev这一段耗时长,可以参考windows给个等待动画或者linux那种输出一些log信息
回复

使用道具 举报

5

主题

19

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2025-7-21 10:38:29 | 显示全部楼层
eric2013 发表于 2025-7-21 08:57
使用存储设备绘制,提取绘制到存储设备里面,以后调用仅需调用仅需调用write at函数即可

好的,谢谢,我看下教程里具体怎样实现
回复

使用道具 举报

5

主题

19

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2025-7-21 10:39:15 | 显示全部楼层
DX3906 发表于 2025-7-21 09:32
估计是图片加载速度慢导致的,sdram空间够的话,可以在sdarm里创建一些memdev,开机先把图片加载到memdev, ...

好的,谢谢,我看下具体怎样实现
回复

使用道具 举报

5

主题

19

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2025-7-21 16:56:30 | 显示全部楼层
eric2013 发表于 2025-7-21 08:57
使用存储设备绘制,提取绘制到存储设备里面,以后调用仅需调用仅需调用write at函数即可

void MainTask(void) {
  //
  // Setup configuration dependent pointers
  //
  APPW_X_Setup();
  //
  // Initialize AppWizard
  //
  APPW_Init(APPW_PROJECT_PATH);
  //
  // Create all persistent screens except initial screen
  //
  APPW_CreatePersistentScreens();
  //
  // Create initial screen...
  //
  APPW_CreateRoot(APPW_INITIAL_SCREEN, WM_HBKWIN);
  //
  // ...and show it
  //
  APPW_Exec();
}
appwizard中都是自动创建界面的,请问我需要把图片绘制到存储设备的程序加到哪里呢?怎样才能实现和不用appwaizard那样编写emwin一样呢,就和安富莱emwin教程那样
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-22 09:47:47 | 显示全部楼层
mnr2016222 发表于 2025-7-21 16:56
void MainTask(void) {
  //
  // Setup configuration dependent pointers

教程第50章节

https://forum.anfulai.cn/forum.p ... &extra=page%3D1
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 03:12 , Processed in 0.045735 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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