【FreeRTOS】事件

事件个人感觉就是多个二值信号量得组合~

事件特点

  • 事件只与任务相关联,事件相互独立,一个 32 位的事件集合(EventBits_t 类型的变量,实际可用与表示事件的只有 24 位),用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0 表示该事件类型未发生、1 表示该事件类型已经发生),一共 24 种事件类型。
  • 事件仅用于同步,不提供数据传输功能。
  • 事件无排队性,即多次向任务设置同一事件(如果任务还未来得及读走),等效于只设置一次。
  • 允许多个任务对同一事件进行读写操作。
  • 支持事件等待超时机制。
    【FreeRTOS】事件_第1张图片
    事件和我们用的if判断语句(里面写满了各种条件,标志位)是一样的;一入51深似海,从此RTOS是路人(手动哭脸.jpg)
 configUSE_16_BIT_TICKS

事件创建函数 xEventGroupCreate()
事件删除函数 vEventGroupDelete()
事件组置位函数 xEventGroupSetBits()(任务)
事件组置位函数 xEventGroupSetBitsFromISR()(中断)
等待事件函数 xEventGroupWaitBits()
清除事件函数xEventGroupClearBits()与 xEventGroupClearBitsFromISR()

你可能感兴趣的:(FreeRTOS,FreeRTOS)