1. 程式人生 > >uC/OS-II 最簡單的訊息佇列

uC/OS-II 最簡單的訊息佇列

 #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); /*接收訊息佇列的資料*/

           }

}

注:此文章的內容全部是個人原創,如有轉載及拷貝,請註明出處。如果此文章對您有幫助,請您回帖,你的回覆是對我最大的支援,謝謝!!