硬汉嵌入式论坛

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

[μCOS-III] OSTaskQPend()接收按键消息问题

[复制链接]

8

主题

54

回帖

78

积分

初级会员

~

积分
78
QQ
发表于 2017-8-16 17:52:51 | 显示全部楼层 |阅读模式
我用的是μCOS-III+STemWin+FatFs+Lwip+UIP+USB综合程序V1.2d,ucos-iii没有更改过,任务创建等都没有修改过,在AppTaskUserIF通过OSTaskQPost()发送按键消息到AppTaskGUI,按下按键KEY_1_DOWN就发送KEY_1_DOWN的值过去,按下KEY_2_DOWN就发送KEY_2_DOWN的值过去,在线仿真的时候,发现AppTaskGUI里面*p_Msg 有时候是0,有时候是对的就是是KEY_1_DOWN或者KEY_2_DOWN的值,这是什么原因呢?
AppTaskGUI里面接收按键消息代码如下:
void MainTask(void)
{
    uint8_t * p_Msg = NULL;
    ...
    while(1)
    {
        p_msg = OSTaskQPend(10,
              OS_OPT_PEND_BLOCKING,
              &msg_size,
              &ts,
              &err);
        if(p_Msg != NULL)
        {
             switch(*p_Msg)
             { ... }
        }
    }
}
~~~~~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2017-8-16 18:01:06 | 显示全部楼层
不要用仿真,发送消息前在按键任务里面串口打印下,GUI任务里面接收到消息时打印下,看看是否正常,问题出在那个环节。
回复

使用道具 举报

8

主题

54

回帖

78

积分

初级会员

~

积分
78
QQ
 楼主| 发表于 2017-8-16 21:36:27 | 显示全部楼层

回 eric2013 的帖子

eric2013:
不要用仿真,发送消息前在按键任务里面串口打印下,GUI任务里面接收到消息时打印下,看看是否正常,问题出在那个环节。

还是一样的,跟仿真效果一样,但是重新上电之后,出现接收到0的好像减少了很多。一开始用串口打印有很多接收到0,重新上电之后就少了很多。串口数据如下:
1502890069(1).jpg
~~~~~
回复

使用道具 举报

8

主题

54

回帖

78

积分

初级会员

~

积分
78
QQ
 楼主| 发表于 2017-8-16 21:52:58 | 显示全部楼层

回 like_888 的帖子

like_888:


还是一样的,跟仿真效果一样,但是重新上电之后,出现接收到0的好像减少了很多。一开始用串口打印有很多接收到0,重新上电之后就少了很多。串口数据如下:

eric2013:
不要用仿真,发送消息前在按键任务里面串口打印下,GUI任务里面接收到消息时打印下,看看是否正常,问题出在那个环节。

还是一样的,跟仿真效果一样,但是重新上电之后,出现接收到0的好像减少了很多。一开始用串口打印有很多接收到0,重新上电之后就少了很多。串口数据如下:


测了一会儿,发现有时候很多0,按哪个都是收到0,串口数据如下:
1502891170(1).jpg
不知道是什么问题导致这种现象。
~~~~~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107046
QQ
发表于 2017-8-17 01:45:16 | 显示全部楼层
特别注意你的这个函数,这里设置的超时时间是10ms(如果系统时钟节拍是1ms的话),如果10ms内没有收到按键消息,时间到了也会让此任务继续执行,所有就有你的说一直返回0的问题。

  p_msg = OSTaskQPend(10,
              OS_OPT_PEND_BLOCKING,
              &msg_size,
              &ts,
              &err);

QQ截图20170817014154.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 11:26 , Processed in 0.163420 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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