9372|10

108

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

F7 STemwin自带的绘点刷屏速度好慢啊 [复制链接]

本来打算把摄像头采集的数据显示在STemwin界面中的,所以采用逐个像素写入,发现速度好慢呀,有没有更好的解决方案么?代码:
  1. int main (void) {
  2.        
  3.         uint32_t i,j=0;

  4.   CPU_CACHE_Enable();                       /* Enable the CPU Cache           */
  5.   HAL_Init();                               /* Initialize the HAL Library     */
  6.   BSP_SDRAM_Init();                         /* Initialize BSP SDRAM           */
  7.         __HAL_RCC_CRC_CLK_ENABLE();                                                         /* Enable the CRC Module */
  8.   SystemClock_Config();                     /* Configure the System Clock     */
  9.        
  10.         GUI_Init();
  11.         GUI_SetBkColor(GUI_WHITE);
  12.         //GUI_DispString("Hello world!");
  13.         GUI_SetColor(GUI_YELLOW); /* 设置画笔颜色 */

  14.        
  15.         while(1)
  16.         {
  17.                                 GUI_Clear();
  18.                                 for(j=0;j<240;j++)
  19.                                 for(i=0;i<320;i++)
  20.                                 GUI_DrawPixel(i,j);
  21.         }
  22. }
复制代码




此帖出自stm32/stm8论坛

最新回复

用FSMC,速度杠杠的  详情 回复 发表于 2016-1-27 13:13
点赞 关注
 

回复
举报

108

帖子

0

TA的资源

一粒金砂(中级)

推荐
 
weizhongc 发表于 2015-11-25 09:28
你直接修改SDRAM的buffer就好了。优化下啊

这不是裸机显示的,通过STemwin之后,直接操作SDarm的话,STemwin重绘机制会把图像抹掉的
此帖出自stm32/stm8论坛
 
 

回复

6423

帖子

16

TA的资源

版主

沙发
 
逐个像素写入?没搞过不知道,不能DMA方式吗?
此帖出自stm32/stm8论坛
 
个人签名training
 

回复

750

帖子

3

TA的资源

版主

板凳
 
曲线救国当然慢
原本memcpy两个字节可能只需要一个指令周期,现在每个像素都需要调用好几层函数。
此帖出自stm32/stm8论坛

点评

但是STemwin里的函数已经是分装好的了  详情 回复 发表于 2015-11-21 21:48
 
个人签名

要666

 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

4
 
le062 发表于 2015-11-21 21:43
曲线救国当然慢
原本memcpy两个字节可能只需要一个指令周期,现在每个像素都需要调用好几层函数。

但是STemwin里的函数已经是分装好的了
此帖出自stm32/stm8论坛

点评

一般将画点函数用于gui绘制 区域填充会专门弄个优化过的函数  详情 回复 发表于 2015-11-21 21:58
 
 
 

回复

750

帖子

3

TA的资源

版主

5
 
zhanghuichun 发表于 2015-11-21 21:48
但是STemwin里的函数已经是分装好的了

一般将画点函数用于gui绘制
区域填充会专门弄个优化过的函数
此帖出自stm32/stm8论坛
 
个人签名

要666

 
 

回复

82

帖子

0

TA的资源

一粒金砂(中级)

6
 
给楼主一个建议,查看emWin的GUI_DrawBitmap函数,然后提前定义一个位图,位图的大小对应你转换后图片的大小,位图的颜色格式对应你转换后的图片颜色格式,接着你每次每个点直接往位图的数据数组里面填充。
最后,发现填充够一副图像后,直接调用GUI_DrawBitmap函数刷新屏幕,这样就实现了一帧一帧图像的刷新方式,比你一个一个像素点刷新的方式快多了。
此帖出自stm32/stm8论坛

点评

不错这个建议,我尝试一下  详情 回复 发表于 2015-11-25 11:45
 
 
 

回复

466

帖子

0

TA的资源

版主

7
 
你直接修改SDRAM的buffer就好了。优化下啊
此帖出自stm32/stm8论坛

点评

这不是裸机显示的,通过STemwin之后,直接操作SDarm的话,STemwin重绘机制会把图像抹掉的  详情 回复 发表于 2015-11-25 11:46
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

8
 
STM32F103 发表于 2015-11-21 22:11
给楼主一个建议,查看emWin的GUI_DrawBitmap函数,然后提前定义一个位图,位图的大小对应你转换后图片的大 ...

不错这个建议,我尝试一下
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

10
 
我直接用SDRAM,发现速度慢了很多啊
此帖出自stm32/stm8论坛
 
 
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

11
 
用FSMC,速度杠杠的
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表