【正点原子阿波罗STM32F767开发板试用体验】+ STemwin 字符显示

  • 赤心木zqw
  • LV5工程师
  • |      2018-07-11 23:20:40
  • 浏览量 1913
  • 回复:1
前阵子实在太忙了,一直在出差,所以STM32开发板都没有时间好好把玩,最近刚空下来,继续好好学习STemwin。 看正点原子的STemwin例程,只有一开始的emwin移植是使用裸机移植的,后面的演示例程都是基于操作系统,这点跟emwin的入门指引又有不同,所以我硬着头皮使用裸机来学习STemwin,直接用上一篇例程的demo来修改学习。而且正点原子的例程貌似没办法使用emwin提供的仿真软件仿真,找了很久资料,发现安富莱的STemwin教程还是很完善,很丰富的,就用着正点原子的硬件,学着安富莱的软件学习STemwin吧~ 先修改一下上一篇demo例程中的程序,将原来的GUI_DEMO_Main()函数改为MainTask()函数,我看了STemwin官方给出的例程,GUI函数的入口都是从MainTask开始的,不知道为什么正点原子修改了这一处入口。 接着在GUIDEMO_Start.c文件中找到MainTask函数本体,修改函数为字符串显示内容,如下:
void MainTask(void) {

    /* ??? emWin */

    // GUI_Init();

    /*  设置背景颜色  */ 

    GUI_SetBkColor(GUI_LIGHTBLUE);

    /* 清屏后背景颜色起效 */ 

    GUI_Clear();

    /* 设置字体大小 */

    GUI_SetFont(&GUI_Font32_ASCII);

    /* 显示内容  */

    GUI_DispString("www.ickey.cc \nchixinmu"); 

    while (1)

    { 

        GUI_Delay(10);

    }

}
整体函数结构完成,用emwin提供的仿真软件试一下,看下效果: 嗯,符合预期,在LCD原点显示www.ickey.cc 换行,显示chixinmu,试下把程序烧写到阿波罗开发板中。 和仿真的效果一致(背景颜色实际上是比较接近的,手机拍出来饱和度和亮度高很多) 接着,我们来学习下emwin提供的字符显示函数:
GUI_SetPenSize(10);

	GUI_SetColor(GUI_RED);

	GUI_DrawLine(300, 0, 500, 300);

	GUI_DrawLine(500, 0, 300, 300);

	GUI_SetBkColor(GUI_BLACK);

	GUI_SetColor(GUI_WHITE);



	GUI_SetTextMode(GUI_TM_NORMAL);

	GUI_DispStringHCenterAt("GUI_TM_NORMAL", 400, 0);



	GUI_SetTextMode(GUI_TM_REV);

	GUI_DispStringHCenterAt("GUI_TM_REV", 400, 50);



	/* 透明文本 */

	GUI_SetTextMode(GUI_TM_TRANS);

	GUI_DispStringHCenterAt("GUI_TM_TRANS", 400, 100);

	/* 异或文本 */

	GUI_SetTextMode(GUI_TM_XOR);

	GUI_DispStringHCenterAt("GUI_TM_XOR", 400, 150);

	/* 设置文本模式 */

	GUI_SetTextMode(GUI_TM_TRANS | GUI_TM_REV);

	GUI_DispStringHCenterAt("GUI_TM_TRANS | GUI_TM_REV", 400, 200);
这部分函数第一部分是画了两条交叉的红线,用于验证效果,然后设置字符显示底色为黑色,字符本色为白色。GUI_DispStringHCenterAt()函数用于将字符居中显示在某个坐标。 emwin提供了多种模式用于显示字符: GUI_TM_NORMAL模式是正常模式,我们应看到黑底白字的字符; GUI_TM_REV是反转模式,我们应看到白底黑字的字符; GUI_TM_TRANS是透明模式,我们应看到蓝色背景色,白色字体的字符; GUI_TM_XOR是异或模式,底色还是蓝色背景色,字符的颜色是原本设置的白色字符和背景色异或后的颜色,前面打的红色交叉可以验证此处会变为另一个颜色; GUI_TM_TRANS | GUI_TM_REV是两种模式同时生效:透明且黑色字符。 先使用仿真,看下效果: 再将代码烧录到开发板中: 嗯~和预期效果一样~ 毕竟GUI的改动相比程序内容的改动更加频繁(产品经理,项目经理,UI设计师,软件工程师深有体会),所以emwin提供了仿真软件,先把UI在PC上仿真完成,最后再烧录到嵌入式中,实际工作中,UI设计和程序设计分开执行,是一种高效率的生产方式。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
yangjiaxu 2018-07-12
哇,学习了,我也准备这么学习了,感觉很高大上啊
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子