壹個使用結構體例子:
struct?AMessage? {? portCHAR?ucMessageID;? portCHAR?ucData[?20?];? }xMessage;? unsigned?portLONG?ulVar?=?10UL;? void?vATask(?voidvoid?*pvParameters?)? {? xQueueHandle?xQueue1,?xQueue2;? struct?AMessage?*pxMessage;? /*創建壹個隊列,隊列能包含10個unsigned?long類型的值。*/? xQueue1?=?xQueueCreate(?10,?sizeof(?unsigned?portLONG?)?);? /*?創建壹個隊列,隊列能包含10個?Amessage結構體指針類型的值。?這樣可以通過傳遞指針變量來包含大量數據。*/?
xQueue2?=?xQueueCreate(?10,?sizeof(?struct?AMessage?*?)?);? //?...? if(?xQueue1?!=?0?)? {? /*1個unsigned?long型數據入隊.如果需要等待隊列空間變的有效,? 會最多等待10個系統節拍周期*/? if(?xQueueSend(?xQueue1,?(?voidvoid?*?)?&ulVar,?(?portTickType?)?10?)?!=pdPASS?)? {?/*消息入隊失敗*/?
}?}?
if(?xQueue2?!=?0?)?
{?
/*?發送壹個指向結構體Amessage的對象,如果隊列滿也不等待?*/? pxMessage?=?&?xMessage;? xQueueSend(?xQueue2,?(?voidvoid?*?)?&pxMessage,?(?portTickType?)?0?);?}?
//...?任務其余代碼.? }