第四章 队列

本文介绍了嵌入式开发中队列作为任务间通信的主要形式,详细讲解了如何创建队列、发送和接收消息,包括阻塞和非阻塞方式,并提到了xQueueOverwrite()函数用于覆盖写入。
摘要由CSDN通过智能技术生成


队列是任务间通信的主要形式。它们可用于在任务之间以及中断和任务之间发送消息。在大多数情况下,它们被用作线程安全FIFO(先进先出)缓冲区。
```
uint8_t FifoMessage[10] = "hello";
QueueHandle_t TmpQueueHandle;

//第一步 : 创建队列
TmpQueueHandle = xQueueCreate( 10 , sizeof(FifoMessage) );
if(NULL != TmpQueueHandle) //创建队列成功
{
     printf("create queue successfully\r\n");        
}

/*第二步:发生消息
注意项: xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xTicksToWait项,阻塞时间,指示当队列满的时候,任务进入阻塞态,等待队列空闲的最大时间。
如果值给0的话,当队列满的时候,就立即返回,
当值为portMAX_DELAY (INCLUDE_vTaskSuspend需为1)的时候,程序就会一直死等,相当于while{};直到队列有空闲的队列项。
当为0,队列满的时候,则执行printf("queue send data fail\r\n");
当值为portMAX_DELAY,队列满的时候,程序阻塞,不执行任何语句,也就不执行printf("queue send data fail\r\n");
*/
A:     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值