《FreeRTOS信号量同步》 🎭 生产者-消费者模型 c

0
回复
126
查看
[ 复制链接 ]

45

主题

7

回帖

185

积分

注册会员

积分
185
2025-6-24 15:31:08 显示全部楼层 阅读模式
《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");    }}
⚖️ 使用原则
  • 二进制信号量用于事件通知
  • 计数信号量用于资源管理


收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则