freertos互斥锁使用

1、互斥锁的作用

互斥锁用来保护共享资源,防止多线程同时使用共享资源导致一些不可预知的结果。

2、互斥锁的初始化

osMutexId  resource_mutex = NULL;  //定义一个互斥锁id,本质是指针
osMutexDef(resource_mutex );  //定义一个互斥锁变量
void resource_mutex_init(void)  //创建互斥锁
{
	resource_mutex = osMutexCreate(osMutex(resource_mutex ));
}
void resource_mutex_acquire(void)  //获取互斥锁
{
    if (resource_mutex != NULL)
    {
        osMutexWait(resource_mutex , osWaitForever);
    }
}
void resource_mutex_release(void)  //释放互斥锁
{
    if (resource_mutex != NULL)
    {
        osMutexRelease(resource_mutex);
    }
}

3、互斥锁的使用

使用共享资源前先获取互斥锁,使用完成后释放,例如:

void function(void)
{
	resource_mutex_acquire();
	/*
	操作共享资源
	*/
	resource_mutex_release();
}

你可能感兴趣的:(c++,c语言,单片机)