FreeRTOS 中互斥锁的基本使用方法

以下是 FreeRTOS 中互斥锁的基本使用方法:

  1. 引入头文件

     在使用互斥锁之前,需要引入 FreeRTOS 的头文件。
    

#include “FreeRTOS.h”

#include “semphr.h”
2. 创建互斥锁

    使用 xSemaphoreCreateMutex() 函数创建一个互斥锁。这个函数返回一个指向互斥锁的句柄。

声明
SemaphoreHandle_t mutex1;
BaseType_t xStatus1;

必须初始化
mutex1 = xSemaphoreCreateMutex();
使用的地方
#ifdef DBG_Task
xStatus1 = xSemaphoreTake(mutex1, portMAX_DELAY);
printf(“CalibU cal_index:%d,fQv=%0.4f\r\n”,cal_index,cal_flow[cal_index]);
printf(“CalibU fQv:%0.4f,fPv:0.4f,fT:%0.4f,fBP:%0.4f\r\n”,fQv,fPv,fT,fBP);
xSemaphoreGive(mutex1);
#endif

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeRTOS互斥锁用于保护共享资源,防止多个线程同时访问共享资源而引发的竞争条件。互斥锁使用步骤如下: 1. 定义互斥锁变量和互斥锁句柄:在代码先定义一个互斥锁变量和一个互斥锁句柄,例如: ``` osMutexId resource_mutex = NULL; // 定义互斥锁句柄 osMutexDef(resource_mutex); // 定义互斥锁变量 ``` 2. 创建互斥锁:在初始化函数创建互斥锁,例如: ``` void resource_mutex_init(void) { resource_mutex = osMutexCreate(osMutex(resource_mutex)); } ``` 3. 获取互斥锁:在需要使用共享资源的函数,首先获取互斥锁,例如: ``` void function(void) { resource_mutex_acquire(); // 获取互斥锁 // 操作共享资源 resource_mutex_release(); // 释放互斥锁 } ``` 总结:在FreeRTOS使用互斥锁的步骤包括定义互斥锁变量和句柄、创建互斥锁、获取互斥锁以及释放互斥锁。通过这些步骤,可以确保多个线程对共享资源的安全访问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [freertos互斥锁使用](https://blog.csdn.net/weixin_45379397/article/details/130604913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【FreeRTOS互斥锁使用](https://blog.csdn.net/qq_43581670/article/details/127688331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值