本帖最后由 xxt76 于 2011-1-19 21:28 编辑
这个问题困扰我好几天了。以下是我写的一个任务。在任务中,当我调用OSQPend函数时,返回值是OS_Q_OK没错,但它没把消息队列SerialData中的消息读出来写给qi。因此qi始终是0,肯请各位高手指点一二,不胜感激。
void TaskA(void)
{
uint8 data qi;
OSQCreate(SerialData,16);
while (1)
{
if(OSQPost(SerialData,0x16)==OS_Q_OK)
LED2=0;
if(OSQNMsgs(SerialData) ==1)
{
LED1=0;
delay(250);
}
P1 = 0xff;
//------------上面的都正常,下面的qi结果总不对--------------
if(OSQPend(&qi,SerialData,0)==OS_Q_OK)
{
LED0=0;
if(qi==0x16)
LED6=0;
}
//--------------------------
}
......
} |