freertos 两个队列之间使用消息队列进行通信

task 之间进行使用消息队列进行通信

int main(void)
{	

	  xQueue = xQueueCreate(10, sizeof(uint8_t));	

	  xTaskCreate( Task1,(signed portCHAR *)"Task1",configMINIMAL_STACK_SIZE,NULL,tskIDLE_PRIORITY,NULL);      
      xTaskCreate( Task2, ( signed portCHAR * ) "Task2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+1,NULL );
																									
	  vTaskStartScheduler();        //schdule start
	  return 0;
}



//任务一:Filling the message queue with content Grow uint8 type from 1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void  Task1(void *pvParameters)
{
	uint8_t SendNum = 1;  	
	while(1)
	{  
		vTaskDelay( 2000/portTICK_RATE_MS );  
		//fill content to msg queue
		xQueueSend( xQueue, ( void* )&SendNum, 0 );  
		SendNum++;   
    }
}

//task two:Get the content from the message queue~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void  Task2(void *pvParameters)
{
	uint8_t  ReceiveNum =0;
	while(1)
	{
	    //get content from msg queue
		if( xQueueReceive( xQueue, &ReceiveNum, 100/portTICK_RATE_MS ) == pdPASS)  
		{
			//PROCESS
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值