启动任务StartTask() 发送完消息队列 自己删除,接收方一直显示数据 用OSQFlush(Str_Q); //清空消息队列 下面纠结接收不到了 哈哈

  • 在建立工程的时候,启动任务StartTask()  启动了任务MyTask(),也建立了消息队列,然后发送消息队列,发送完自己删除了自己,在接收方一直能接受到数据???为何???

因为我们的消息队列未清空,消息队列里面一直有数据呢,当然在执行MyTask  的任务的时候, MyTask 里面有这句等待消息队列的语句ss=OSQPend(Str_Q,0,&err);      //请求消息队列,如果在任务MyTask  里面我们清除消息队列嫩?啊是不是就没有数据接收了???果不其然,,,清空后 啥也收不到。。。

StartTask()启动任务程序:

s100="the value of ostime is from 100 to 500 now!!";
//PC_DispChar(0x80, 0, ShowTable[1], 0);
OSQPostFront(Str_Q,s100);   //发送

mytask的程序:

OSQFlush(Str_Q); //清空消息队列 下面纠结接收不到了 哈哈

ss=OSQPend(Str_Q,0,&err); //请求消息队列 请求也没有鸟用 ,啥也没有

PC_DispStr(3,++y,ss,DISP_FGND_RED+DISP_BGND_LIGHT_GRAY); //easy arm 软件值接收一次数据

结果:用ZLG  的EASY ARM 显示   ,啥也不显示。

原文地址:https://www.cnblogs.com/locean/p/5468568.html