无需内嵌代码的全新GUI截图方案在TouchGFX,ThreadX GUIX,emWin,LVGL,AWTK全部测试通过,含多缓冲方式玩法
已经正式发布:https://www.armbbs.cn/forum.php?mod=viewthread&tid=118116
static/image/hrline/4.gif
搞GUI这么多年来,这个问题一直是个心病,通过这段时间的研究,终于有个产品样子了。
早期包括现在做产品效果展示,需要截屏时,很多时候依然采用的SD卡/U盘这种的古老方案,不仅麻烦,而且繁琐。
emWin早期的时候有推出过emSPY截图功能,需要用户移植RTT或者网络协议栈,后续新版本更新,经常出现花屏,几乎没法使用。
近期搞H7-TOOL的RTOS Trace功能,发现当前机制用于各种GUI截图也贼方便。用户仅需接上SWD接口,无需用户嵌入代码到目标,填入显存地址即可,通过过这个功能,会大大方便大家产品效果展示。
截图800*480*2分辨率显示屏,1.5秒左右。
视频:
https://www.bilibili.com/video/BV16P411n7LF
https://www.bilibili.com/video/BV16P411n7LF
(1) ThreadX GUIX展示:
https://img.anfulai.cn/dz/attachment/forum/202209/29/005812szxveex222n3aguz.png
https://img.anfulai.cn/dz/attachment/forum/202209/29/005825p8cv9yff1vmwv21z.png
(2)emWin
emWin有个双缓冲,三缓冲模式,今天花时间也解决了,可以依次将三个缓冲内存全部展示出来,方便查看每个缓冲的截图效果。
https://img.anfulai.cn/dz/attachment/forum/202209/30/010835o7l49jd3ly8yub48.png
(3)TouchGFX
(4)LVGL
(5)AWTK
(6 ) 当然,裸机也是没问题的
整理完毕 厉害了,等成品了购买一套学习研究 牛啊!!! 牛批!这个真的很不错 以上都是全缓冲的例子,类似lvgl支持的半缓冲,以至于四分之一缓冲,这样的是否支持呢,是否就要操作总线从LCD的GRAM里去读了 有梦为马 发表于 2022-9-30 09:51
以上都是全缓冲的例子,类似lvgl支持的半缓冲,以至于四分之一缓冲,这样的是否支持呢,是否就要操作总线从 ...
对,这种的不能直接读显存,要从GRAM里面读取。像RA8875就是这样,可以控制RA8875进入读像素模式。 需要使用SWDIO接口嘛,还是直接使用SWD-DAT和SWD-CLK两根数据线? amfy 发表于 2022-9-30 10:57
需要使用SWDIO接口嘛,还是直接使用SWD-DAT和SWD-CLK两根数据线?
SWDDAT就是SWDIO,你说的SWDIO应该是想说SWO专用引脚吧。我们没有用,就是两线制CLK和数据线。 坐等H7更新,早日用上 硬件接口:8080 16位 RGB565,ILI9488驱动IC,480*320
https://img.anfulai.cn/dz/attachment/forum/202210/05/125849h8zyqihcs6bnpgsh.png
硬件接口:8080 16位 RGB565,RA8875驱动IC,480*272(截图中的白色和黑色方框是未更新字库Flash)
https://img.anfulai.cn/dz/attachment/forum/202210/08/091834zaw9ufcw2wwakisa.png
记得以前项目做了一个截图保存BMP格式文件的方案。把屏幕截图保存为bmp文件,通过串口传出来。当时压缩方案也有,就是没时间做成jpg格式。 etter 发表于 2022-11-1 15:20
记得以前项目做了一个截图保存BMP格式文件的方案。把屏幕截图保存为bmp文件,通过串口传出来。当时压缩方案 ...
对,之前的玩法都是这样的。 坐等发布中,墙裂期待:lol 来学习一下 HI 大佬
想請教一下.
這些GUI都有視頻播放了??
不過看EMWIN的做法好像是你得先把檔案分成視頻.EMF和.MP3
不是可以直接播放視頻檔案??
謝謝?? inceboy 发表于 2024-4-13 20:32
HI 大佬
想請教一下.
這些GUI都有視頻播放了??
实际上都一样的,我们这里是提前都提取出来了,方便使用,不过现在的emWin6.x已经支持AVI格式,可以不用提取emf了,仅提取音频即可。
像是要ffmpeg音视频处理,也是解析后分别处理的音频和视频。 HI 大佬
那這個您發的"
最新的emWin6.36例子模板,配套最新的AppWizard V1.42,这个库版本支持MDK,IAR和GCC,不限制IC厂家使用(2024-02-20) "
這個也有支援.AVI了嗎??
謝謝. inceboy 发表于 2024-4-16 01:36
HI 大佬
那這個您發的"
对,很早之前的版本就支持了。 HI 大佬,目前試到有兩個問題:
1: 是PC上的模擬器MOVIE PLAYER OK了, 但是就是用EJECT去抓HDD裡的媒體檔.
然後APPWIZARD裡也試到有了, 但有個問題是它內部產出是小檔案,但我用自己匯入的大檔案時, 燒錄時KEIL會報
"OUT OF MEM",
因為產出的媒體檔太大,但它有個可以打勾放在外部記憶體的選項,但是那個路
徑不知道怎麼抓?? 然後打勾放在外部記憶體就不會報記憶體不夠了, 但是V7板開不了機.
不知道它是不是路徑指定不對找不到檔案就GUI都開不起來??
2:那是說我找的專案要把SD卡致能嗎???
因為說明書找不到其他線索,所以想和您請教一下,謝謝. inceboy 发表于 2024-4-23 09:54
HI 大佬,目前試到有兩個問題:
1: 是PC上的模擬器MOVIE PLAYER OK了, 但是就是用EJECT去抓HDD裡的媒體檔. ...
生成的大数组前面加个const试试 本帖最后由 inceboy 于 2024-4-25 16:25 编辑
HI 大佬,好像己經有加了.....
APPWIZARD在產出數組時己經有加了.
如果在建媒體檔或匯入媒體檔時,那個EXT不打勾的話.
但產出的數值大小一定大於2M
最後還是得到一個"OUT OF MEM"......
但是加了EXT打勾的話, 那個路徑現在不明, 不知道怎麼樣讓它抓到.
所以變成
1:EXT不打勾, 產出的燒錄檔過大,
2:EXT打勾, 可以燒得進去, 但是開不了機,因為它可能嘗試去抓媒體檔在那裡,但是找丕到.
以上是APPZIARD的狀況.
我是想弄成像模擬器那樣子,一開機就是PLAYER
然後用EJECT去找SD的媒體檔來播這樣子.
摸索中..................
HI 大佬
有找到一些範例和解釋了, 大概的方向都是一定要想辦法帶進你的外部記憶體 TO EMWIN.
不管是SD或是SPI MEM, 不過看大家帶進的都是SD卡居多.
都要先把SD的檔案系統開起來才行.........
還在莫索中.................
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 = {
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 試試嗎??
謝謝. inceboy 发表于 2024-4-25 22:48
HI 大老,搞錯了.它的APPZIZARD產出的影像.C檔是這樣寫的:
"File : Logo_480x272.c
Purpose ...
这个GUI_CONST_STORAGE是表示已经存到内部Flash了。貌似是你的Flash不足吧,这个图片还挺大,220K eric2013 发表于 2024-4-26 09:30
这个GUI_CONST_STORAGE是表示已经存到内部Flash了。貌似是你的Flash不足吧,这个图片还挺大,220K
HI 大佬....不是,這一張己經是預設的SEGGER開機畫面.
展示MOIVE的功能.大概兩秒而己.
H7板的2M還放得下.
放上自己的視頻還不打勾EXT, 就一定超出2M.
HI 大佬
模擬器產出的原始碼好像不能照抄.......因為它好像會去找二個FS.H和RTOS.H的檔,但找半天找不到...........
然後又會有一個結構,FS_FILE * pFile 它也找不到,然後找半天這個結構是和SQL有關??
在FW也是找半天找不到, 一直錯.
看來只能從APP WIZARD下手, 因為唯一可以在V7板上跑的範例是從APPWIZARD產出的.
模擬器只能在PC上跑.
inceboy 发表于 2024-4-29 00:27
HI 大佬
模擬器產出的原始碼好像不能照抄.......因為它好像會去找二個FS.H和RTOS.H的檔,但找半天找不到... ...
这部分自己手动处理比较方便。 eric2013 发表于 2024-4-29 08:23
这部分自己手动处理比较方便。
YES 大佬
摸索中. 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
大佬
APP WIZARD裡好有提它用SD卡的FILESYSTEM是用:
emFile ?? 所以我得去匯入這個檔案系統囉?
页:
[1]