该部分在上份代码基础上修改得来,代码下载链接:
https://wwzr.lanzout.com/i4Efu1la39wh
密码:cbvx
该代码尽量做到最简,不添加多余的、不规范的代码。
内容主要包括:
最终实现效果:
任务通知是一种轻量级的同步机制,用于在任务之间进行通信和同步。任务通知是由二进制信号量和事件组实现的,提供了更简单和更高效的方式来实现任务间的同步。
使用场景:
xTaskNotifyGive
发送通知,从而唤醒等待通知的任务。使用 xTaskNotifyGive
函数向任务发送通知。
//发送任务通知
xTaskNotifyGive(xTask);
// xTask :任务句柄
这将向指定任务发送一个通知。
使用 ulTaskNotifyTake
函数等待接收任务通知。
ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait );
// xClearCountOnExit 函数返回前是否清零: pdTRUE:把通知值清零 pdFALSE:如果通知值大于0,则把通知值减一
// xTicksToWait 等待通知时间, 0:不等待,即刻返回; portMAX_DELAY:一直等待
示例:
// 等待任务通知
ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
任务1发出通知,任务2等待通知