在队列传输大块数据例程中
/* 创建队列: 长度为1,数据大小为4字节(存放一个char指针) */
xQueue = xQueueCreate( 1, sizeof(char *) );
疑问:
队列的长度为1,不是说队列只能存储一个数据吗?
任务A写入数据,任务C就要读出数据才能保持数据包的完整性吗?
执行如下是语句是如何能直接打印出字符串的?难倒是传入buffer地址,就不用管队列长度吗?直到读出buffer所有数据才会执行下一条语句吗 if( xStatus == pdPASS )?
xStatus = xQueueReceive( xQueue, &buffer, xTicksToWait); /* 得到buffer地址,只是4字节 */
if( xStatus == pdPASS )
{
/* 读到了数据 */
printf("Get: %s", buffer);
}