打印
[STM32F4]

【STM32F469I试用】+5.GUI学习之HappyNewYear

[复制链接]
1216|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 liuyuliuyuliuyu 于 2016-1-1 00:24 编辑

首先祝大家新年快乐!!!
本来想尝试先学习SDRAM、DSI等内容并学会驱动,然后在学习STemWin的移植,进而学习GUI设计。奈何作为一个小白,水平还是不行呀,看了几天没有效果。还好官方提供了STewWin的教程,已经做好了相关外设的驱动。可以先用官方的历程,体验GUI设计。可以在STM32CubeMx或Keil安装路径下找到,具体历程所在的位置(具体路径参考个人安装设置):


用MDK打开历程:
main函数里与GUI相关的主要代码:
BSP_SDRAM_Init(); 
  
  /* Enable the CRC Module */
  __HAL_RCC_CRC_CLK_ENABLE();
  
   /* Init the STemWin GUI Library */
  GUI_Init();
  
  GUI_DispStringAt("Starting...", 0, 0);
  
  /* Initialize LCD and LEDs */
  GUI_DispStringAt("Initializing lcd...", 0, 12);
  
  /* Activate the use of memory device feature */
  WM_SetCreateFlags(WM_CF_MEMDEV);
  
  MainTask();
主要是一些初始化,和字符串显示。具体函数就不说了,我现在也不是很了解。只说一下MainTask()函数。代码在BASIC_HelloWorld.c文件里。具体代码如下:
void MainTask(void) {
  GUI_Clear();
  GUI_SetFont(&GUI_Font20_1);
  GUI_DispStringAt("Hello world!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()-20)/2);
  while(1);
}
我稍微做了一些修改,祝大家新年快乐。
void MainTask(void) {
  GUI_Clear();
  GUI_SetFont(&GUI_Font32B_1);
        GUI_SetBkColor(255);
        GUI_DispStringAt("Happy New Year 2016!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()-20)/2);
        GUI_DispStringAt("Happy New Year 21IC!", (LCD_GetXSize()-100)/2, (LCD_GetYSize()+40)/2);
  while(1);
}
添加了GUI_SetBkColor(255);这行代码,将字体背景颜色设置为红色。这个函数的参数是一个32位整数。最低8位对应红色,接着的8位对应绿色。再接着的8位对应蓝色。
显示效果:


也可以用GUIBuilder软件设计界面,并显示出来。
软件路径如下:


具体怎么操作软件就先不介绍了,我也是刚开始学习。简单设计了一个名为Happy的对话框,添加了几个控件,具体界面如下:

点击File菜单下的Save会在当前路径下生成一个.c文件。打开.c文件将代码复制到BASIC_HelloWorld.c文件中,并修改MainTask()函数:
void MainTask(void) {
  GUI_Clear();
   CreateHappy();
  while(1)
        {
                GUI_Delay(100);
        }
}
CreateHappy()函数为拷贝过来的代码里的函数,函数名根据工程生成,Create后的Happy为对话框名。在while循环里需要加入GUI_Delay()函数,否则窗口刷新不出来。编译,下载。效果如下:




发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

184

帖子

3

粉丝