请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

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

[emWin] stm32f103搭ssd1309使用emwin内存占用问题

[复制链接]

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2022-8-13 16:56:02 | 显示全部楼层 |阅读模式
目前用stm32f103搭ssd1309使用emwin来做一些工业界面的显示,还未写核心的程序,hex文件的大小已经远超mcu的flash大小。而且界面还未写完全,请问有没有好的办法进行优化或者解决emwin占用flash过大的问题呢,麻烦各位大佬指点指点~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-8-13 18:15:52 | 显示全部楼层
理解有误,hex是hex,bin是bin,

bin文件才是实际下载到芯片里面的。
回复

使用道具 举报

21

主题

123

回帖

186

积分

初级会员

积分
186
发表于 2022-8-14 23:50:05 | 显示全部楼层
开o3优化
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2022-8-15 09:29:24 | 显示全部楼层
eric2013 发表于 2022-8-13 18:15
理解有误,hex是hex,bin是bin,

bin文件才是实际下载到芯片里面的。

感谢硬汉哥指点,再有就是想问一下,大致需要十来个界面,F103能够实现吗,核心程序需要100k左右的flash。
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-8-15 10:08:35 | 显示全部楼层
103最大512K FLASH。。。。多大的屏?
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2022-8-15 10:44:08 | 显示全部楼层
hqgboy 发表于 2022-8-15 10:08
103最大512K FLASH。。。。多大的屏?

ssd1309驱动,12864的单色屏。就是觉得可能带不动,大佬有更好的处理办法吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-8-16 00:42:08 | 显示全部楼层
Ronin 发表于 2022-8-15 10:44
ssd1309驱动,12864的单色屏。就是觉得可能带不动,大佬有更好的处理办法吗

完全没问题,足够,你这个是单色屏,资源需求巨小。
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-8-17 09:47:45 | 显示全部楼层
Ronin 发表于 2022-8-15 10:44
ssd1309驱动,12864的单色屏。就是觉得可能带不动,大佬有更好的处理办法吗

12864用总线,快的很。安富莱就有例程,硬汉还优化了。
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2022-8-18 17:20:55 | 显示全部楼层
hqgboy 发表于 2022-8-17 09:47
12864用总线,快的很。安富莱就有例程,硬汉还优化了。

大佬,现在我一个屏分成了两个窗口。1、想要实现的操作就是按键按下能够同时结束两个窗口(对话框),然后显示一个整屏的窗口(对话框),能实现么。2、有个问题就是在一个窗口(对话框)回调函数下结束其他的窗口,没法找到这个对应的对话框句柄,或者能不能自定义不同对话框的句柄呢,求解答!感谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-8-19 10:37:17 | 显示全部楼层
Ronin 发表于 2022-8-18 17:20
大佬,现在我一个屏分成了两个窗口。1、想要实现的操作就是按键按下能够同时结束两个窗口(对话框),然 ...

1、可以,发送窗口自定义消息即可。
2、全局变量记录创建的对话框/窗口句柄即可。
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2022-8-19 11:10:30 | 显示全部楼层
本帖最后由 Ronin 于 2022-8-19 15:11 编辑
eric2013 发表于 2022-8-19 10:37
1、可以,发送窗口自定义消息即可。
2、全局变量记录创建的对话框/窗口句柄即可。
回调函数2中的按键操作:
case WM_KEY:
      switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
      case GUI_KEY_ENTER:
                  WM_SendMessageNoPara(hWinMain,WM_DELECT);
          GUI_EndDialog(pMsg->hWin, 1);
          GUI_CreateDialogBox(_aDialogCreate_Set1, GUI_COUNTOF(_aDialogCreate_Set1), _cbDialog_Set1, WM_HBKWIN, 0, 0);
          break;
      }
回调函数1中的自定义消息处理:
case WM_DELECT:
          GUI_EndDialog(pMsg->hWin, 0);
  break;


采用了您说的这种方法,但是有执行GUI_EndDialog(pMsg->hWin, 1);GUI_CreateDialogBox(_aDialogCreate_Set1, GUI_COUNTOF(_aDialogCreate_Set1), _cbDialog_Set1, WM_HBKWIN, 0, 0);  这个操作,却没有执行发送消息到回调函数1中的操作。如果把发送消息函数放到MainTask中就能够执行。请问这是什么原因呢,搞了好久都没法解决。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2022-8-19 19:21:29 | 显示全部楼层
Ronin 发表于 2022-8-19 11:10
回调函数2中的按键操作:
case WM_KEY:
      switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {

WM_DeleteWindow 与 GUI_EndDialog 两者的区别?
https://www.armbbs.cn/forum.php? ... 3627&fromuid=58
(出处: 硬汉嵌入式论坛)

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:53 , Processed in 0.183480 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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