uC/OS-II 最簡單的訊息佇列
阿新 • • 發佈:2019-02-02
#define MESSAGES_MAX_SIZE 1000 /*訊息佇列緩衝區的大小*/
void *MsgGrp[MESSAGES_MAX_SIZE]; /*訊息陣列,訊息陣列存放著各訊息的指標*/
OS_EVENT *StrQueue; /* 訊息佇列 */
INT8U datatemp[] = {"I am LishengWu,I believe I am sure to be successful."};/* 需要傳送的範例資料*/
void ComOSQCreateInit(void)
{
StrQueue = OSQCreate(&MsgGrp[0],MESSAGES_MAX_SIZE); /*建立訊息佇列*/
return;
}
void SendQ(void)
{
OSQPost(BDStrQueue,datatemp); /* 傳送資料到訊息佇列中*/
return;
}
void RecTask(void) /* 這個函式是一個任務函式,需要建任務去等待的接收訊息佇列的資料,在這裡任務如何建立就不詳述了*/
{
INT8U *Qbuf;
INT8U *err;
while (1)
{
Qbuf = OSQPend(StrQueue,0,&err); /*接收訊息佇列的資料*/
}
}
注:此文章的內容全部是個人原創,如有轉載及拷貝,請註明出處。如果此文章對您有幫助,請您回帖,你的回覆是對我最大的支援,謝謝!!