ESP32学习FREERTOS中队列Queue相关函数
2022/2/20 6:26:43
本文主要是介绍ESP32学习FREERTOS中队列Queue相关函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
创建任务,具体参数有任务函数入口指针即函数名,任务名字,分配栈大小,任务函数参数,任务优先级,任务句柄等参数。
1 void vTaskCode( void * pvParameters ) 2 { 3 for( ;; ) 4 { 5 // Task code goes here. 6 } 7 }
上面的格式是具体任务函数的写法。
1 vTaskDelete( xHandle );
也可以用vTaskDelete删除任务,释放掉任务所占资源。
1 static xQueueHandle xQueueHandle1=NULL; 2 xQueueHandle1=xQueueCreate(1,10);
创建一个队列总长为1,项长为10,这样可以存储10个字节。
1 xQueueSend(xQueueHandle1,(void *)&data,10/portTICK_PERIOD_MS);
这是向队列发送,参数有队列句柄,发送数据指针,延时设置
1 if(xQueueReceive(xQueueHandle1,&datarecv,portMAX_DELAY)) 2 { 3 printf("datarec=%s\n",datarecv); 4 fflush(stdout); 5 }
队列数据接收时,用接收函数,判断是否收到数据,如果收到数据可以通过指针对数据进行处理。
1 xQueueSendFromISR( xQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) 2 xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken )
当不是在任务中发送和接收队列时而是在中断中,需要用到的是以上两个函数
这篇关于ESP32学习FREERTOS中队列Queue相关函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21MQ-2烟雾传感器详解
- 2024-12-09Kafka消息丢失资料:新手入门指南
- 2024-12-07Kafka消息队列入门:轻松掌握Kafka消息队列
- 2024-12-07Kafka消息队列入门:轻松掌握消息队列基础知识
- 2024-12-07Kafka重复消费入门:轻松掌握Kafka消费的注意事项与实践
- 2024-12-07Kafka重复消费入门教程
- 2024-12-07RabbitMQ入门详解:新手必看的简单教程
- 2024-12-07RabbitMQ入门:新手必读教程
- 2024-12-06Kafka解耦学习入门教程
- 2024-12-06Kafka入门教程:快速上手指南