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

速度刷大图的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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版