OpenEdv-开源电子网

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

edit实时更新数据怎么解决

[复制链接]

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-5-12
在线时间
61 小时
发表于 2019-8-28 14:50:52 | 显示全部楼层 |阅读模式
1金钱
刚把emwin移植好,目前想把edit内的数据进行实时更新,但是试了好多次不行,不知道哪里出问题了,希望大佬们指导一下
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int     NCode;
  int     Id;
  // USER START (Optionally insert additional variables)
  // USER END
  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'Framewin'
    //
    hItem = pMsg->hWin;
    FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    FRAMEWIN_SetText(hItem, "Framewin");
    FRAMEWIN_SetTextColor(hItem, GUI_MAKE_COLOR(0x00A00000));
    FRAMEWIN_SetFont(hItem, GUI_FONT_16B_ASCII);
    //
    // Initialization of 'Edit'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
    EDIT_SetText(hItem, "123");
    EDIT_SetTextColor(hItem, EDIT_CI_ENABLED, GUI_MAKE_COLOR(0x000000FF));
    EDIT_SetFont(hItem, GUI_FONT_16B_ASCII);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  case WM_TIMER://在此处对edit内数据更新。但是并不会更新
    hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);//获取小工具的句柄
    EDIT_SetText(hItem, "110");
    //EDIT_SetTextColor(hItem, EDIT_CI_ENABLED, GUI_MAKE_COLOR(0x000000FF));
    EDIT_SetFont(hItem, GUI_FONT_16B_ASCII);
    EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    WM_RestartTimer(pMsg->Data.v, 1000);

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-8-28 14:50:53 | 显示全部楼层
回复

使用道具 举报

28

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2017-10-14
在线时间
76 小时
发表于 2019-8-29 09:14:58 | 显示全部楼层
定时器复位之前调用WM_InvalidateWindow(GUI_HWIN  hwin);函数
回复

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-5-12
在线时间
61 小时
 楼主| 发表于 2019-8-29 17:49:40 | 显示全部楼层
tiefeng 发表于 2019-8-29 09:14
定时器复位之前调用WM_InvalidateWindow(GUI_HWIN  hwin);函数

谢谢 还请问,我移植的stemwin+freertos,每当在freertos的任务内调用gui的函数,会导致程序直接跑飞,在任务外调用则没问题。是不是移植哪里出问题了
void StartDefaultTask(void const * argument)
{

  /* USER CODE BEGIN 5 */
  /* Infinite loop */
  for(;;)
  {
    LED0_ON();
     osDelay(500);
     LED0_OFF();
     osDelay(500);
   
                        
      
      //GUI_Init();           //GUI初始化后会白屏 初始化多次会影响任务状态 err
      // CreateFramewin();        //运行两次直接死掉 任务也死掉
      //GUI_Exec();               //运行两次直接死掉              任务也死掉
   
   // vTaskSuspend(LCDINITHandle);
   
  }
这个是调试的结果...
回复

使用道具 举报

28

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2017-10-14
在线时间
76 小时
发表于 2019-8-30 22:14:44 | 显示全部楼层
一挖一麻袋aaa 发表于 2019-8-29 17:49
谢谢 还请问,我移植的stemwin+freertos,每当在freertos的任务内调用gui的函数,会导致程序直接跑飞,在 ...

初始化函数不要放在死循环里,初始化函数调用一次就可以了
回复

使用道具 举报

6

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2019-5-12
在线时间
61 小时
 楼主| 发表于 2019-9-2 16:54:23 | 显示全部楼层
tiefeng 发表于 2019-8-29 09:14
定时器复位之前调用WM_InvalidateWindow(GUI_HWIN  hwin);函数

嗯嗯 谢谢
回复

使用道具 举报

8

主题

185

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-7-15
在线时间
47 小时
发表于 2019-9-5 16:08:08 | 显示全部楼层
这是一个高频实际应用场景,楼上说使用定时器是正解;
参考原子GRAPH例程,那个采集的是AD的电压值。
回复

使用道具 举报

7

主题

31

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-10-17
在线时间
16 小时
发表于 2020-2-19 14:51:37 | 显示全部楼层
五月爸爸 发表于 2019-9-5 16:08
这是一个高频实际应用场景,楼上说使用定时器是正解;
参考原子GRAPH例程,那个采集的是AD的电压值。

请问这个例程在具体在哪个文件夹下面呀?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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