关于ucosiii 消息队列的发送个数问题?

2019-07-20 19:45发布

OSQPost() 每次只发送一条消息,但是目前我有DMA接收到串口的8个数据,能不能一次消息队列就发送完成,而不用发送8个才发送完成?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
2019-07-21 14:15
回复【2楼】zuozhongkai:
---------------------------------
OSQPost((OS_Q* )&DATA_Msg,
(void* )Rx_Buffer,
(OS_MSG_SIZE)8,
(OS_OPT )OS_OPT_POST_FIFO,
(OS_ERR* )&err);
*************************************************************
p=OSQPend((OS_Q* )&DATA_Msg,   
  (OS_TICK )0,
                  (OS_OPT )OS_OPT_PEND_BLOCKING,
                  (OS_MSG_SIZE* )8,
                  (CPU_TS* )0,
                  (OS_ERR* )&err);
recevie[k++]=p[0]>>24;
recevie[k++]=p[1]>>16;
recevie[k++]=p[2]>>8;
recevie[k++]=p[3];
recevie[k++]=p[4];
recevie[k++]=p[5];
recevie[k++]=p[6];
recevie[k++]=p[7];
现在是整合到Rx_Buffer数组中去,8个数,发送的是地址,现在有一个疑问我发送和等待的OS_MSG_SIZE为1的时候也可以,因为只要你发送一个首地址,这8个数自然而然的可以得到,疑问为什么有OS_MSG_SIZE这一选项,我发送消息只是发送地址,有了地址自然就可以得到消息?可能问题问的很幼稚,卡主了我!

一周热门 更多>