stm32 emwin 2D 绘图绘制颜 {MOD}一半就修改了

2019-12-15 12:24发布

本帖最后由 蜗牛蜗牛 于 2018-10-20 09:37 编辑

介绍如下: 通过对话框创建第一个界面后按一个按钮 进入这个界面
这个界面是在paint里面重绘的24个圆形代表红绿灯,这个界面创建了一个定时器,设想的是每秒刷新一次paint内24个圆(圆的填充颜 {MOD}是红黄绿黑轮流显示,黑暂时不显示),定时器 重绘调用这个函数 WM_Paint( pMsg->hWin);//
现在的问题是:如图所示填充元会出现半个情况并且串 {MOD}了,还有就是通过打印我看出,每一秒调用一次  WM_Paint( pMsg->hWin) 。paint消息内容会进入3次,每次进入paint 只是重绘一个整屏幕三分之一左右,
我怀疑是整个有个可能和emwin的对这个屏幕绘制机制有关系,或者底层绘制设置有关系,下面会上传。c的源码,我在总循环中调用guidaly。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
sinc_mark
1楼-- · 2019-12-17 05:36
 精彩回答 2  元偷偷看……
wowangru
2楼-- · 2019-12-17 08:19
玩得针66666
cock
3楼-- · 2019-12-17 12:21
sinc_mark 发表于 2018-11-6 10:44
请教一下,移植一个emwin 需要多少ram资源(我需要跑视频播放,屏的大小是240*320),我需要怎么评估我的 ...

emwin之GUIConf.h中有个GUI_ALLOC_SIZE,一般是8K左右,该值越大,刷屏重复次数越少。只要允许,越大越好,如果能大到显示RAM的两倍,就能一次刷完。所以STM32之类的CPU选型时先用RAM最大的,后面再按成本要求降,降到用户不能忍受为止。
蜗牛蜗牛
4楼-- · 2019-12-17 14:41
cock 发表于 2018-11-6 14:33
emwin之GUIConf.h中有个GUI_ALLOC_SIZE,一般是8K左右,该值越大,刷屏重复次数越少。只要允许,越大越好 ...

#define USE_EXRAM  1//使用外部RAM
//设置EMWIN内存大小
#define GUI_NUMBYTES  (960*1024)
#define GUI_BLOCKSIZE  0x80  //块大小


//GUI_X_Config
//初始化的时候调用,用来设置emwin所使用的内存
void GUI_X_Config(void) {
        if(USE_EXRAM) //使用外部RAM
        {
                U32 *aMemory = mymalloc(SRAMEX,GUI_NUMBYTES); //从外部SRAM中分配GUI_NUMBYTES字节的内存
                GUI_ALLOC_AssignMemory((void*)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
                GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
                GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
        }else  //使用内部RAM
        {
                U32 *aMemory = mymalloc(SRAMIN,GUI_NUMBYTES); //从内部RAM中分配GUI_NUMBYTES字节的内存
                GUI_ALLOC_AssignMemory((U32 *)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
                GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
                GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
        }
}


我在确认一下是修改这个 GUI_BLOCKSIZE这个吗?

cock
5楼-- · 2019-12-17 16:07
蜗牛蜗牛 发表于 2018-11-6 15:42
#define USE_EXRAM  1//使用外部RAM
//设置EMWIN内存大小
#define GUI_NUMBYTES  (960*1024)

emwin版本、文件可能不同吧,我没有找到你的例子中的语句。
蜗牛蜗牛
6楼-- · 2019-12-17 16:26
 精彩回答 2  元偷偷看……

一周热门 更多>