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插件能不能分享下

程序还在整理 整理好了的。
页: 1 2 [3] 4 5
查看完整版本: 速度刷大图的3种方法分享(f429,f469已经测试)