《FreeRTOS信号量同步》
🎭 生产者-消费者模型 [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
SemaphoreHandle_t xSemaphore = xSemaphoreCreateBinary();// 生产者任务void vProducerTask(void *pv) { while(1) { xSemaphoreGive(xSemaphore); // 释放信号量 vTaskDelay(1000); }}// 消费者任务void vConsumerTask(void *pv) { while(1) { xSemaphoreTake(xSemaphore, portMAX_DELAY); // 获取信号量 printf("Data received!\n"); }}
⚖️ 使用原则
|