硬汉嵌入式论坛

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

[TouchGFX] 无需内嵌代码的全新GUI截图方案在TouchGFX,ThreadX GUIX,emWin,LVGL,AWTK全部测试通过,含多缓冲方式玩法

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
发表于 2022-9-30 03:31:00 | 显示全部楼层 |阅读模式
已经正式发布:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=118116



搞GUI这么多年来,这个问题一直是个心病,通过这段时间的研究,终于有个产品样子了。

早期包括现在做产品效果展示,需要截屏时,很多时候依然采用的SD卡/U盘这种的古老方案,不仅麻烦,而且繁琐。

emWin早期的时候有推出过emSPY截图功能,需要用户移植RTT或者网络协议栈,后续新版本更新,经常出现花屏,几乎没法使用。

近期搞H7-TOOL的RTOS Trace功能,发现当前机制用于各种GUI截图也贼方便。用户仅需接上SWD接口,无需用户嵌入代码到目标,填入显存地址即可,通过过这个功能,会大大方便大家产品效果展示。

截图800*480*2分辨率显示屏,1.5秒左右。
视频:

https://www.bilibili.com/video/BV16P411n7LF




(1) ThreadX GUIX展示:





(2)emWin

emWin有个双缓冲,三缓冲模式,今天花时间也解决了,可以依次将三个缓冲内存全部展示出来,方便查看每个缓冲的截图效果。



(3)TouchGFX

image.png

image.png

image.png

(4)LVGL

8KH7RSV~X9YCCN[S146@0[9.png
(5)AWTK

image.png

(6 ) 当然,裸机也是没问题的

{SNC47%SFW5R[$C~ITP0O]0.png





评分

参与人数 2金币 +20 收起 理由
flyarm1 + 2 很给力!
xode + 18 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2022-9-30 03:31:12 | 显示全部楼层
整理完毕
回复

使用道具 举报

6

主题

216

回帖

234

积分

高级会员

积分
234
发表于 2022-9-30 07:19:18 来自手机 | 显示全部楼层
厉害了,等成品了购买一套学习研究
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
发表于 2022-9-30 08:31:28 | 显示全部楼层
牛啊!!!
回复

使用道具 举报

13

主题

192

回帖

231

积分

高级会员

积分
231
发表于 2022-9-30 09:30:17 | 显示全部楼层
牛批!这个真的很不错
回复

使用道具 举报

11

主题

122

回帖

160

积分

初级会员

积分
160
发表于 2022-9-30 09:51:09 | 显示全部楼层
以上都是全缓冲的例子,类似lvgl支持的半缓冲,以至于四分之一缓冲,这样的是否支持呢,是否就要操作总线从LCD的GRAM里去读了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2022-9-30 10:42:15 | 显示全部楼层
有梦为马 发表于 2022-9-30 09:51
以上都是全缓冲的例子,类似lvgl支持的半缓冲,以至于四分之一缓冲,这样的是否支持呢,是否就要操作总线从 ...

对,这种的不能直接读显存,要从GRAM里面读取。像RA8875就是这样,可以控制RA8875进入读像素模式。
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2022-9-30 10:57:13 | 显示全部楼层
需要使用SWDIO接口嘛,还是直接使用SWD-DAT和SWD-CLK两根数据线?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2022-9-30 16:06:54 | 显示全部楼层
amfy 发表于 2022-9-30 10:57
需要使用SWDIO接口嘛,还是直接使用SWD-DAT和SWD-CLK两根数据线?

SWDDAT就是SWDIO,你说的SWDIO应该是想说SWO专用引脚吧。我们没有用,就是两线制CLK和数据线。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-9-30 16:52:28 | 显示全部楼层
坐等H7更新,早日用上
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2022-10-9 12:48:31 | 显示全部楼层
硬件接口:8080 16位 RGB565,ILI9488驱动IC,480*320


硬件接口:8080 16位 RGB565,RA8875驱动IC,480*272(截图中的白色和黑色方框是未更新字库Flash)


回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-11-1 15:20:51 | 显示全部楼层
记得以前项目做了一个截图保存BMP格式文件的方案。把屏幕截图保存为bmp文件,通过串口传出来。当时压缩方案也有,就是没时间做成jpg格式。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2022-11-2 10:09:20 | 显示全部楼层
etter 发表于 2022-11-1 15:20
记得以前项目做了一个截图保存BMP格式文件的方案。把屏幕截图保存为bmp文件,通过串口传出来。当时压缩方案 ...

对,之前的玩法都是这样的。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2023-1-7 13:15:11 | 显示全部楼层
坐等发布中,墙裂期待
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-5-18 15:04:53 | 显示全部楼层
来学习一下
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 2024-4-13 20:32:09 | 显示全部楼层
HI 大佬
想請教一下.
這些GUI都有視頻播放了??
不過看EMWIN的做法好像是你得先把檔案分成視頻.EMF和.MP3
不是可以直接播放視頻檔案??
謝謝??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2024-4-14 10:17:04 | 显示全部楼层
inceboy 发表于 2024-4-13 20:32
HI 大佬
想請教一下.
這些GUI都有視頻播放了??

实际上都一样的,我们这里是提前都提取出来了,方便使用,不过现在的emWin6.x已经支持AVI格式,可以不用提取emf了,仅提取音频即可。

像是要ffmpeg音视频处理,也是解析后分别处理的音频和视频。
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 2024-4-16 01:36:49 | 显示全部楼层
HI 大佬

那這個您發的"
[emWin] 最新的emWin6.36例子模板,配套最新的AppWizard V1.42,这个库版本支持MDK,IAR和GCC,不限制IC厂家使用(2024-02-20) "
這個也有支援.AVI了嗎??

謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 2024-4-17 08:06:37 | 显示全部楼层
inceboy 发表于 2024-4-16 01:36
HI 大佬

那這個您發的"

对,很早之前的版本就支持了。
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 7 天前 | 显示全部楼层
HI 大佬,目前試到有兩個問題:

1: 是PC上的模擬器MOVIE PLAYER OK了, 但是就是用EJECT去抓HDD裡的媒體檔.

然後APPWIZARD裡也試到有了, 但有個問題是它內部產出是小檔案,但我用自己匯入的大檔案時, 燒錄時KEIL會報

"OUT OF MEM",

因為產出的媒體檔太大,但它有個可以打勾放在外部記憶體的選項,但是那個路
徑不知道怎麼抓?? 然後打勾放在外部記憶體就不會報記憶體不夠了, 但是V7板開不了機.
不知道它是不是路徑指定不對找不到檔案就GUI都開不起來??

2:那是說我找的專案要把SD卡致能嗎???

因為說明書找不到其他線索,所以想和您請教一下,謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 7 天前 | 显示全部楼层
inceboy 发表于 2024-4-23 09:54
HI 大佬,目前試到有兩個問題:

1: 是PC上的模擬器MOVIE PLAYER OK了, 但是就是用EJECT去抓HDD裡的媒體檔. ...

生成的大数组前面加个const试试
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 5 天前 | 显示全部楼层
本帖最后由 inceboy 于 2024-4-25 16:25 编辑

HI 大佬,好像己經有加了.....

APPWIZARD在產出數組時己經有加了.
如果在建媒體檔或匯入媒體檔時,那個EXT不打勾的話.
但產出的數值大小一定大於2M
最後還是得到一個"OUT OF MEM"......

但是加了EXT打勾的話, 那個路徑現在不明, 不知道怎麼樣讓它抓到.
所以變成
1:EXT不打勾, 產出的燒錄檔過大,
2:EXT打勾, 可以燒得進去, 但是開不了機,因為它可能嘗試去抓媒體檔在那裡,但是找丕到.

以上是APPZIARD的狀況.

我是想弄成像模擬器那樣子,一開機就是PLAYER
然後用EJECT去找SD的媒體檔來播這樣子.
摸索中..................
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 5 天前 | 显示全部楼层
HI 大佬

有找到一些範例和解釋了, 大概的方向都是一定要想辦法帶進你的外部記憶體 TO EMWIN.
不管是SD或是SPI MEM, 不過看大家帶進的都是SD卡居多.
都要先把SD的檔案系統開起來才行.........

還在莫索中.................
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 5 天前 | 显示全部楼层

HI 大老,搞錯了.它的APPZIZARD產出的影像.C檔是這樣寫的:
"File        : Logo_480x272.c
Purpose     : Conversion into c-array.
              Generated file do NOT edit!
---------------------------END-OF-HEADER------------------------------
*/

#include "AppWizard.h"

GUI_CONST_STORAGE unsigned char acLogo_480x272[220329UL + 1] = {
  0x47, 0x55, 0x49, 0x4D, 0x4A, 0x50, 0x45, 0x47, 0x30, 0x00, 0xE0, 0x01, 0x10, 0x01, 0x28, 0x00, 0x28, 0x00, 0x00, 0x00, 0x09, 0x5C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x37, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x02, 0x00, 0x00, 0x88, 0x00, 0x87, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x10, 0x4C, 0x61, 0x76, 0x63, 0x35, 0x39, 0x2E, 0x33, 0x37, 0x2E, 0x31, 0x30, 0x30, 0x00, 0xFF, 0xDB,
  0x00, 0x43, 0x00, 0x08, 0x0A, 0x0A, 0x0B, 0x0A, 0x0B, 0x0D, 0x0D, 0x0D..............."

把GUI_CONST_STORAGE 換成CONST 試試嗎??
謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 4 天前 | 显示全部楼层
inceboy 发表于 2024-4-25 22:48
HI 大老,搞錯了.它的APPZIZARD產出的影像.C檔是這樣寫的:
"File        : Logo_480x272.c
Purpose      ...

这个GUI_CONST_STORAGE是表示已经存到内部Flash了。貌似是你的Flash不足吧,这个图片还挺大,220K
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 4 天前 | 显示全部楼层
eric2013 发表于 2024-4-26 09:30
这个GUI_CONST_STORAGE是表示已经存到内部Flash了。貌似是你的Flash不足吧,这个图片还挺大,220K

HI 大佬....不是,這一張己經是預設的SEGGER開機畫面.
展示MOIVE的功能.大概兩秒而己.
H7板的2M還放得下.

放上自己的視頻還不打勾EXT, 就一定超出2M.
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 昨天 00:27 | 显示全部楼层
HI 大佬
模擬器產出的原始碼好像不能照抄.......因為它好像會去找二個FS.H和RTOS.H的檔,但找半天找不到...........
然後又會有一個結構,FS_FILE * pFile 它也找不到,然後找半天這個結構是和SQL有關??
在FW也是找半天找不到, 一直錯.

看來只能從APP WIZARD下手, 因為唯一可以在V7板上跑的範例是從APPWIZARD產出的.
模擬器只能在PC上跑.
EMWIN_800480.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
 楼主| 发表于 昨天 08:23 | 显示全部楼层
inceboy 发表于 2024-4-29 00:27
HI 大佬
模擬器產出的原始碼好像不能照抄.......因為它好像會去找二個FS.H和RTOS.H的檔,但找半天找不到... ...

这部分自己手动处理比较方便。
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 昨天 12:11 | 显示全部楼层
eric2013 发表于 2024-4-29 08:23
这部分自己手动处理比较方便。

YES 大佬
摸索中.
回复

使用道具 举报

18

主题

215

回帖

269

积分

高级会员

积分
269
发表于 昨天 20:50 | 显示全部楼层
eric2013 发表于 2024-4-29 08:23
这部分自己手动处理比较方便。

Hi 大佬
目前參考APPZIZARD和模擬器和下面兩個範例:
"基于RTX+emWin+FlashFS+USB+TCPnet+CAN+Modbus的DEMO"--FOR F429
"RTX5+RL-USB+FL-FlashFS+RL-TCPnet+emWin6.x" --For V7
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 19:38 , Processed in 0.359754 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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