你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

GUI高阶培训帖之实验二

[复制链接]
lebment 发布时间:2018-7-18 08:15
本帖最后由 lebment 于 2018-7-18 20:53 编辑

  软件:CubeMX5.26
             IAR 8.30
             GUIBulider
             B2C

  硬件:STM32F769NI—Disco

  自不用说,这个评估板是很多板友朝思暮想的对象,三生有幸通过了活动,收到了开发板,以为心中激动,其实不然,这个板子功能强大,不可能将其全部开发和解读,既然是GUI就从GUI来开始上手。
  已经有坛友完成了实验一,很简单,也很基础,实验二同样简单,只不过多了一个STemwin很少有教程提到的窗口重绘。之前有自己的项目要用到重绘,然而不会用,官方手册写的很模糊。以下是以实验一为基础,不再赘述。注意实验二不是我要说的重点,STM中文官网已经有源码和视频教程,一步步来不容易出错。

  一、 略过CubeMX配置直接开始GUIBuilder,创建Windows控件,800-480(长宽)。 01.jpg 俩image, 02.PNG 这是第一个image控件的设置, 03.PNG 这是第二个image控件设置。

二、利用B2C软件图片转C文件,这一步我没有做直接用官网下载的工程里面的几个C文件,使用很简单,不多说。

把这几个C加入工程,我放到了这里 04.PNG ,不需要再改别的,非常快速。

在WindowDLG文件中加入:

extern GUI_CONST_STORAGE GUI_BITMAP bmbackground_new;
extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_blue;
extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_green;
extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_pink;
extern GUI_CONST_STORAGE GUI_BITMAP bmbutterfly_yellow;

static int butterfly_status;



三、 WindowDLG文件在窗口初始化和回调中加入。


switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'background'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
    IMAGE_SetBitmap(hItem, &bmbackground_new);
    //pData = _GetImageById(ID_IMAGE_0_IMAGE_0, &FileSize);
    //IMAGE_SetBMP(hItem, pData, FileSize);
    //
    // Initialization of 'butterfly'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
    IMAGE_SetBitmap(hItem, &bmbutterfly_blue);
    //pData = _GetImageById(ID_IMAGE_1_IMAGE_0, &FileSize);
    //IMAGE_SetBMP(hItem, pData, FileSize);
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
   
    if(butterfly_status == 0)
    {
        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
        IMAGE_SetBitmap(hItem, &bmbutterfly_yellow);
        butterfly_status = 1;
    }
    else if(butterfly_status == 1)
    {
        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
        IMAGE_SetBitmap(hItem, &bmbutterfly_pink);
        butterfly_status = 2;
    }
    else if(butterfly_status == 2)
    {
        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
        IMAGE_SetBitmap(hItem, &bmbutterfly_green);
        butterfly_status = 3;
    }
    else
    {
        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_1);
        IMAGE_SetBitmap(hItem, &bmbutterfly_blue);
        butterfly_status = 0;
    }
   
    WM_DefaultProc(pMsg);
    break;
  }

四、GUI_App.c中添加
    void GRAPHICS_MainTask(void) {

  /* 2- Create a Window using GUIBuilder */
  WM_HWIN hWin = CreateWindow(); //获取目标窗口

/* USER CODE BEGIN GRAPHICS_MainTask */
/* User can implement his graphic application here */
  /* Hello Word example */
/*    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font32_1);
    GUI_DispStringAt("Hello world!", (LCD_GetXSize()-150)/2, (LCD_GetYSize()-20)/2);
   */
/* USER CODE END GRAPHICS_MainTask */
  while(1)
{
  
      WM_InvalidateWindow(hWin);//重绘
      GUI_Delay(1000);
      

}
}


可以编译上电!(编译后会有一个warning,可以忽略)
05.PNG

亲测IAR、TrueStudio以及各路IDE都是这个warningMDK不报错。



我的机子不知道为什么开机先显示这个,然后非常正常。不知道是否与那个IAR的Warning有关。
06.PNG

(不好意思,没有动图)

//*****************************重点分割线*********************************//
一、   官方解读, 07.PNG ,类似的 08.PNG 09.PNG ,从Info的介绍可以看出对应的三个不同对象分别是整个窗口、窗口的一部分和区域,有空可以对这三个东西测试,观察不同。

二、ST买了TouchGFX会出免费的工具?这个我不知道,我只知道我提前体验了一把TouchGFX,利用TouchGFX Designer (类似GUIBuilder)。 10.PNG 据我了解生成DISCO板的工程完全没有问题,只不过有试用期,而且有源码。在哪下?

我会不告诉你么?
去官网,在下拉栏里选择TouchGFX Designer,然后填写各种信息,然后官方会发送邮件(回复可能比较慢),里面带这个软件的下载地址。安装好了然后开始使用啊!
11.PNG 选择Disco平台,也可以使用模拟器(软件自带)。

12.PNG 选择Demo,Zombie大战骑士。

13.PNG 选择Run,就可以直接运行了,源代码是Cpp。

三、以上都是非常简单的东西,Disco资源很多,需要时间去开发,后续希望我有能力也有时间出精品,轻喷。




App.rar

下载

76.15 KB, 下载次数: 3

收藏 评论6 发布时间:2018-7-18 08:15

举报

6个回答
zero99 回答时间:2018-7-18 11:20:37
谢谢分享啦,很详细,但是第一篇怎么没找到啊,,
TLLED 回答时间:2018-7-18 11:42:08
看着好强大的工具
lebment 回答时间:2018-7-18 12:00:50
zero99 发表于 2018-7-18 11:20
谢谢分享啦,很详细,但是第一篇怎么没找到啊,,

实验一很多坛友分享了,我再发出来感觉很水啊
andey 回答时间:2018-7-18 12:27:54
提示: 作者被禁止或删除 内容自动屏蔽
lebment 回答时间:2018-7-18 20:54:05
andeyqi 发表于 2018-7-18 12:27
试验二的图片资源文件在哪能搞到,有的话上传下分享下呗

已传
andey 回答时间:2018-7-18 21:49:13
提示: 作者被禁止或删除 内容自动屏蔽
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版