如何使用 FreeRTOS 库同步任务?

How to sync tasks using FreeRTOS library?

我有 5 个不同的 5 个任务(功能)同时 运行ning。我想像任何函数一样实现 start 运行ning 然后其他函数不应该 运行 直到函数完成它的过程。 我想使用 FreeRTOS 来实现。 示例。

听起来你需要 mutex。每个任务在开始 运行 时获取互斥量,并在完成时释放它。当任何任务 运行 时,其他任务将在互斥锁上被阻塞。

您需要使用互斥(互斥)信号量。

Here is an example 保护 ATmega Arduino 克隆的串口。这确保了多个任务提交给串行端口的消息不会交错(损坏)。

You can see that the semaphore is taken 在尝试写入串行端口之前,然后在任务完成其活动时给出(释放)。