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

2019-07-20 19:45发布

OSQPost() 每次只发送一条消息,但是目前我有DMA接收到串口的8个数据,能不能一次消息队列就发送完成,而不用发送8个才发送完成?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
1楼-- · 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这一选项,我发送消息只是发送地址,有了地址自然就可以得到消息?可能问题问的很幼稚,卡主了我!
taizonglai
2楼-- · 2019-07-21 15:40
 精彩回答 2  元偷偷看……
3楼-- · 2019-07-21 19:42
回复【9楼】zuozhongkai:
---------------------------------
恩 谢谢
未来,我来
4楼-- · 2019-07-21 21:51
静 发表于 2015-7-14 10:54
回复【2楼】zuozhongkai:
---------------------------------
                OSQPost((OS_Q*                )&DATA_Msg,               
                                (void* ...

但是,你发送过去的是一个地址,怎么又能P[1],P[2]的分啊

一周热门 更多>