你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

速度刷大图的3种方法分享(f429,f469已经测试) 精华  

[复制链接]
sun-2034138 提问时间:2016-9-23 13:32 /
阅读主题, 点击返回1楼
1 收藏 9 评论42 发布时间:2016-9-23 13:32
42个回答
sun-2034138 回答时间:2016-9-23 19:51:25
Inc_brza 发表于 2016-9-23 18:02
xmodem-1k,直接传输,直接烧flash

是可以直接刷flash 但是我的qspiflash才32mb
高二毛 回答时间:2016-9-24 09:57:35
好东西,谢谢分享
星空流逝 回答时间:2016-9-25 12:09:21
               好方法                                    
sun-2034138 回答时间:2016-9-26 01:41:01
最后一种作为窗口控件的image也搞明白了,其实就是bmp文件读出来就可以,它的数据格式就是bmp的结构
sun-2034138 回答时间:2016-9-26 01:48:13

其实这个很针对的不是谁都用的到的
sun-2034138 回答时间:2016-9-26 01:48:28
高二毛 发表于 2016-9-24 09:57
好东西,谢谢分享

其实这个很针对的不是谁都用的到的
sun-2034138 回答时间:2016-9-26 02:14:55
最后提一下这个东西。有人会问为什么  不用这个函数LCD_SetDevFunc。其实说了也很纠结,因为读出.bmp在window的控件里面是不卡的,但是如果你调用GUI_BMP_Draw去显示bmp或者其他什么的类型的图片文件就会很卡,可能是因为调用存储机制?反正是为什么lib库你也看不到。我也没有进行深入的探究。但是可以确定的就是你可以通过我说的这几种方法快速的画图。
第一在没有stemwin的情况下。这种方式你可以放很多图片,总比官方的qspi的快。同时也省去你去一点一点去解析bmp文件的时间。一举两得。速度很快的。

第二在有stemwin的情况下你单纯的想绘制bmp。好处是把官方例程本该运行在qspiflash上的代码重新放回芯片内部(官方例程在图片多的时候就是这样做的),也摆脱了flash大小的问题。说实在的你要是飞想放qspiflash也行,用我的方法同样靠谱。程序还是在芯片里面靠谱我个人觉得。

第三使用stemwin的windows下的窗口控件image,好处同二。

其实st的例程把f4f7带加速器的程序更改已经在手册中写出来了,详情看英文版的中文版的没有5.28。就是下面那段程序。但是追求更快肯定没有什么错误。而且我已经在之前说了。我这样做的主要目的是把几百张图放进去。。。其实少的情况下你按照官方的例程走也是没有问题的。
从始至终的思路是没有问题的,首先不要解析,其次放进内存,之后显示。


    /* Set custom functions for several operations */
    LCD_SetDevFunc(i, LCD_DEVFUNC_COPYBUFFER, (void(*)(void))LCD_LL_CopyBuffer);
    LCD_SetDevFunc(i, LCD_DEVFUNC_COPYRECT,   (void(*)(void))LCD_LL_CopyRect);

    /* Filling via DMA2D does only work with 16bpp or more */
    LCD_SetDevFunc(i, LCD_DEVFUNC_FILLRECT, (void(*)(void))LCD_LL_FillRect);
    LCD_SetDevFunc(i, LCD_DEVFUNC_DRAWBMP_8BPP, (void(*)(void))LCD_LL_DrawBitmap8bpp);
    LCD_SetDevFunc(i, LCD_DEVFUNC_DRAWBMP_16BPP, (void(*)(void))LCD_LL_DrawBitmap16bpp);  
    LCD_SetDevFunc(i, LCD_DEVFUNC_DRAWBMP_32BPP, (void(*)(void))LCD_LL_DrawBitmap32bpp);

    /* Set VRAM address */
    LCD_SetVRAMAddrEx(i, (void *)(layer_prop.address));




        GUICC_M4444I_SetCustColorConv(Color2IndexBulk_M4444IDMA2D,Index2ColorBulk_M4444IDMA2D);
        GUICC_M888_SetCustColorConv(Color2IndexBulk_M888DMA2D,Index2ColorBulk_M888DMA2D);   
        GUICC_M8888I_SetCustColorConv(Color2IndexBulk_M8888IDMA2D,Index2ColorBulk_M8888IDMA2D);
        GUI_SetFuncAlphaBlending(DMA2D_AlphaBlending);                                            
        GUI_SetFuncGetpPalConvTable(_LCD_GetpPalConvTable);
        GUI_SetFuncMixColors(DMA2D_MixColors);
        GUI_SetFuncMixColorsBulk(LCD_MixColorsBulk);

风丛林 回答时间:2016-9-26 10:04:02

谢谢分享,不明觉厉,收藏 了
忘记一切Q 回答时间:2016-9-26 10:06:08
谢谢分享!
zfz9232 回答时间:2016-9-26 10:59:04
mark占个位置
zhangxu56726 回答时间:2016-9-26 11:17:51
sun-2034138 发表于 2016-9-23 13:32
同样需要我写的java小插件把文件转换过后存在sd中,这种转换过程要比stemwin的转换快的多。转换过后还是这 ...

hi,   mymalloc 是malloc 函数同样的功能吗?
zhangxu56726 回答时间:2016-9-26 11:18:15
sun-2034138 发表于 2016-9-23 13:32
同样需要我写的java小插件把文件转换过后存在sd中,这种转换过程要比stemwin的转换快的多。转换过后还是这 ...

你的JAVA插件能不能分享下
damiaa 回答时间:2016-9-26 11:57:21
mark占个位置
sun-2034138 回答时间:2016-9-26 14:48:54
zhangxu56726 发表于 2016-9-26 11:17
hi,   mymalloc 是malloc 函数同样的功能吗?

这个内存管理不是我写的 是我直接移植正点原子的。就是malloc一样的
sun-2034138 回答时间:2016-9-26 14:49:13
zhangxu56726 发表于 2016-9-26 11:18
你的JAVA插件能不能分享下

程序还在整理 整理好了的。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版