野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13925|回复: 1

消息队列读出来的和写进去的不一样

[复制链接]
发表于 2016-3-6 17:15:06 | 显示全部楼层 |阅读模式
大神们。我写了两个任务,一个任务创建消息队列,并发送数字999,然后用另一个任务接收,为什么接收到的是536870956。  哪里出错了 ,我弄一天了,  急死了,在线等!!!
#include "app.h"

extern        OS_TCB LED2_TCB;

extern OS_Q Q_led1;
OS_MSG_SIZE size;
int Msg1;

CPU_TS timestamp;



void Task_LED1(void * p_arg)
{
       
        OS_ERR err;
       
        (void)p_arg;
       
        Msg1=999;
       
        OSQCreate ((OS_Q        *)&Q_led1,
             (CPU_CHAR    *)"led1",
             (OS_MSG_QTY   )10,
             (OS_ERR      *)&err);
       
        OSQPost ((OS_Q        *)&Q_led1,
           (void        *)&Msg1,
           (OS_MSG_SIZE  )sizeof(Msg1),
           (OS_OPT       )OS_OPT_POST_FIFO,
           (OS_ERR      *)&err);
       
}


void Task_LED2(void * p_arg)
{
       
        OS_ERR err;
       
        void *Msg2;
       
        (void)p_arg;

        Msg2 = OSQPend ((OS_Q       *)&Q_led1,
                                                                        (OS_TICK     )0,
                                                                        (OS_OPT      )OS_OPT_PEND_BLOCKING,
                                                                        (OS_MSG_SIZE *)&size,
                                                                        (CPU_TS     *)timestamp,
                                                                        (OS_ERR     *)&err);
       
                printf("\r\n TASK2:  Msg2=%d", (int)Msg2);

}


回复

使用道具 举报

 楼主| 发表于 2016-3-6 20:33:00 | 显示全部楼层
Msg2应该声明成int*。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-11 15:45 , Processed in 0.027512 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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