硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6120|回复: 2
收起左侧

[有问必答] emWin数据同步问题

[复制链接]

11

主题

33

回帖

11

积分

新手上路

积分
11
发表于 2014-11-9 07:46:24 | 显示全部楼层 |阅读模式
我使用的是emwin+ucosIII, 在使用过程中发现一个奇怪问题:
   1. 我在ucosIII创建了一个串口线程,当串口收到警告信息时,发送到emwin的桌面
       窗口:

    WM_MESSAGE         t_Msg;   
    t_Msg.MsgId=WM_Rx_DATA;
    t_Msg.Data.p=i_Cmd;
    WM_SendMessage(WM_HBKWIN,&t_Msg);
  2. 当桌面窗口接收到信息后弹出对话框:
      void MainFrm_ProccWarn(uint8_t *i_pData)
     {
    TMsgBoxRec            t_MsgBoxRec;
    t_MsgBoxRec.m_Title="错误";
    t_MsgBoxRec.m_Msg="读取U盘错误";
    t_MsgBoxRec.m_BtnCap1="确定";
    t_MsgBoxRec.m_BtnCap2="";
    MsgBox_Module(&t_MsgBoxRec);
    }
  问题在,在emwin中通过按键来调用MainFrm_ProccWarn弹对话框没有任何问题,
  但通过串口消息来调用MainFrm_ProccWarn立即进入硬件异常。
  请问为啥会这个样子?又该如何解决?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107683
QQ
发表于 2014-11-9 12:47:44 | 显示全部楼层
这种情况以前我也遇到过,暂时不知道怎么解决,楼主可以换一种思路实现,通过消息队列等通讯机制把数据传递过去处理。
回复

使用道具 举报

11

主题

33

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2014-11-11 09:13:18 | 显示全部楼层
以下是我的emWin线程的主循环程序:
    while (1)
    {
        GUI_Delay(100);
    }
假设加上ucosiii的队列等待:
     OS_Pend...
我不知道如何加啊,加了又如何调用GUI_Delay...这些函数?
能否写几条指令看看
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-11 22:56 , Processed in 0.367222 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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