OpenEdv-开源电子网

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

实验57 ucGUI实验不解之处

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-9-15
在线时间
1 小时
发表于 2014-11-19 07:40:11 | 显示全部楼层 |阅读模式
5金钱
请原子哥与高手们解答
1.例程实验57中是怎么调用通过GUI_WaitKey()来调用 GUI_Exec()函数的。

GUI_Exec()函数可以通过GUI_WaitKey()来调用。

进入以下函数,循环执行:

GUI_Exec()->GUI_Exec1()->WM_Exec()->WM_Exec1()->

在WM_Exec1()函数中做如下判断:

  if (WM_pfHandlePID) {

    if (WM_pfHandlePID())//因此实际调用函数WM_HandlePID;

      return 1;               /* We have done something ... */

  }
2.我跟踪函数始终没有找到GUI_WaitKey()与 GUI_Exec()函数的入口。

ucgui资料.docx

18.69 KB, 下载次数: 95

最佳答案

查看完整内容[请看2#楼]

疑问:为何你问的是从GUI_WaitKey();调用GUI_Exec();的方法,但贴的是GUI_Exec();的代码呢? 从GUI_WaitKey();调用GUI_Exec();的方法:见函数实现部分 int GUI_WaitKey(void) {   int r;   do {     r =  GUI_GetKey();     if (r) {       break;     }  & ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2014-11-19 07:40:12 | 显示全部楼层
疑问:为何你问的是从GUI_WaitKey();调用GUI_Exec();的方法,但贴的是GUI_Exec();的代码呢?


从GUI_WaitKey();调用GUI_Exec();的方法:见函数实现部分
int GUI_WaitKey(void) {
  int r;
  do {
    r =  GUI_GetKey();
    if (r) {
      break;
    }
    if (!GUI_Exec()) {
      GUI_X_WAIT_EVENT();      /* Wait for event (keyboard, mouse or whatever) */
    }
  } while (1);
  return r;
}

如果你想问的是如何从GUI_Exec();调用GUI_WaitKey();的方法,那么GUI_PollKeyMsg();是用来读取按键消息的~

int WM_Exec1(void) {
  /* oll ID if necessary */
  if (WM_pfPollPID) {
    WM_pfPollPID();
  }
  if (WM_pfHandlePID) {
    if (WM_pfHandlePID())
      return 1;               /* We have done something ... */
  }
  if (GUI_PollKeyMsg()) {
    return 1;               /* We have done something ... */
  }
  if (WM_IsActive && WM__NumInvalidWindows) {
    WM_LOCK();
    _DrawNext();
    WM_UNLOCK();
    return 1;               /* We have done something ... */
  }
  return 0;                  /* There was nothing to do ... */
}
努力,前进。
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
发表于 2014-11-19 10:33:47 | 显示全部楼层
都是江苏人,帮顶
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-9-15
在线时间
1 小时
 楼主| 发表于 2014-11-19 14:43:55 | 显示全部楼层
回复【2楼】yuanxinfei:
---------------------------------
别光帮顶啊兄弟,给讲解一下呗。
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
发表于 2014-11-19 16:08:03 | 显示全部楼层
因为我也不会,所以只能帮顶了。你也姓yuan啊
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-9-15
在线时间
1 小时
 楼主| 发表于 2014-11-20 07:40:45 | 显示全部楼层
回复【5楼】5498折戟沉沙:
---------------------------------
不好意思,我的意思是实验57在什么地方调用了GUI_WaitKey(void)这个函数,
通过调用GUI_WaitKey(void)->GUI_Exec()->GUI_Exec1()->WM_Exec()->WM_Exec1()->WM_pfHandlePID()->WM_HandlePID()
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2014-9-15
在线时间
1 小时
 楼主| 发表于 2014-11-20 07:41:57 | 显示全部楼层
回复【4楼】yuanxinfei:
-------------------------------是啊 我也姓袁,有缘啊。你在啥地方工作
回复

使用道具 举报

29

主题

244

帖子

0

精华

高级会员

Rank: 4

积分
944
金钱
944
注册时间
2014-10-9
在线时间
93 小时
发表于 2014-11-22 16:22:33 | 显示全部楼层
回复【7楼】yuanjishun:
---------------------------------
我在江苏的常州工作,你呢?我QQ792452536,加一下互相交流,我刚开始学stm32
淘宝小店,没事可以点一下增加点流量http://shop69767205.taobao.com/
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 12:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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