OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2475|回复: 0

[探索者F407] 探索者F407_EMWIN实验9 分段存储设备_仅支持4.3寸MCU屏

[复制链接]

109

主题

5562

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10541
金钱
10541
注册时间
2017-2-18
在线时间
1908 小时
发表于 2019-2-13 21:58:38 | 显示全部楼层 |阅读模式
本帖最后由 peng1554 于 2019-2-13 21:59 编辑

探索者F407开发板的EMWIN实验9 分段存储设备在4.3寸MCU屏上显示时靠左显示(方便支持2.8寸和3.5寸屏显示)
这样显示有些别扭,所以改了个居中显示的程序

4.3寸MCU屏的分辨率为800*480,程序设计液晶上边的1/3部分显示字符
中间位置利用存储设备来支持显示填充方块(来回旋转)和填充多边形(旋转)
需要注意的是测试程序存储设备作用的区域比较大(需用400*140个像素点)
所以在显示时相较于例程,红绿填充块的来回移动和多边形的旋转有所放慢
测试程序仅修改_DrawIt()和_DemoBandingMemdev()
[mw_shl_code=c,true]static void _DrawIt(void * pData)
{
        tDrawItContext * pDrawItContext = (tDrawItContext *)pData;
        GUI_Clear();
        GUI_SetFont(&GUI_Font8x8);
        GUI_SetTextMode(GUI_TM_TRANS);

        //绘制背景,在液晶上显示绿色填充矩形
        GUI_SetColor(GUI_GREEN);
        GUI_FillRect(pDrawItContext->XPos_Text,
               pDrawItContext->YPos_Text - 25,
               pDrawItContext->XPos_Text + 100,
               pDrawItContext->YPos_Text +15);
        //绘制多边形
        GUI_SetColor(GUI_BLUE);
        GUI_FillPolygon(pDrawItContext->aPointsDest, SIZE_OF_ARRAY(aPoints), 400, 240);

        //绘制前景,在液晶上显示红色填充矩形
        GUI_SetColor(GUI_RED);
        GUI_FillRect(700 - pDrawItContext->XPos_Text,
               pDrawItContext->YPos_Text + 35,
               700 - pDrawItContext->XPos_Text + 100,
               pDrawItContext->YPos_Text + 75);
}

//分段存储演示程序
void _DemoBandingMemdev(void)
{
        tDrawItContext DrawItContext;
        int i, swap=0;
        GUI_SetBkColor(GUI_BLACK);
        GUI_Clear();
        GUI_SetColor(GUI_YELLOW);
        GUI_SetFont(&GUI_Font32B_ASCII);
        GUI_DispStringHCenterAt("MEMDEV_Banding - Sample", 400, 5);
        GUI_SetFont(&GUI_Font24_ASCII);
        GUI_DispStringHCenterAt("Banding memory device\nwithout flickering", 400, 40);
        DrawItContext.XPos_Poly = 800;
        DrawItContext.YPos_Poly = 480;
        DrawItContext.YPos_Text = 190;
        while (1)
        {
                swap = !swap;
                for (i = 200; i < 500; i+=3)                                                                 //来回移动绿色矩形填充块和红色矩形填充块,并旋转多边形填充块
                {
                        float angle = i * 3.1415926 / 55;
                        DrawItContext.XPos_Text = (swap) ? i : (700 - i);                //确定填充矩形的X坐标点
                        //旋转多边形
                        GUI_RotatePolygon(DrawItContext.aPointsDest, aPoints,
                                                        SIZE_OF_ARRAY(aPoints), angle);
                        #if USE_BANDING_MEMDEV
                        {
                                GUI_RECT Rect = {200, 160, 600,300};                                //确定存储设备作用的显示区域
                                GUI_MEMDEV_Draw(&Rect,&_DrawIt,&DrawItContext,0,0);        //使用分段存储绘制
                        }
                        #else
                                //如果没有开启分段存储的话就使用普通绘制方式
                                _DrawIt((void *)&DrawItContext);
                        #endif
                }
        }
}[/mw_shl_code]


探索者F407_EMWIN实验9 分段存储设备_仅支持4.3寸MCU屏.rar

15.07 MB, 下载次数: 37

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表