野火电子论坛

 找回密码
 注册

扫一扫,访问微社区

查看: 45|回复: 1

FreeRTOS释放互斥量的方法

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式
/*
*函 数 名:OLED_DisPlaySet()
*函数功能:OLED显示设置修改界面任务
*/
static void OLED_DisPlaySet(void* parameter)
{
    UBaseType_t xReturn = pdTRUE;
    u8 T_queue;
    while(1)
    {
        
        if(pdTRUE == xQueueReceive(Control_Queue,&T_queue,portMAX_DELAY))
        {
            
            xReturn = xSemaphoreTakeRecursive(OLED_Task_change_Handle,portMAX_DELAY);
            if(xReturn == pdTRUE)
                {
                    printf("%d \r\n",T_queue);
                }
        }

    }
}
这里按下按键1和2进行数值大小调整,此时占用OLED屏幕资源,在按键无操作2s后,自动释放递归互斥量,数显任务获得互斥量,使用OLED资源。怎么实现才能满足这个要求?


回复

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
我在接收到消息队列后,启动单次定时器任务,但是释放互斥量放在那里我就搞不好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

野火电子公众号

手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 大学生ARM嵌入式2群

GMT+8, 2020-2-21 17:59 , Processed in 0.145359 second(s), 27 queries , Gzip On.

野火电子论坛

© 2014-2016 www.firebbs.cn

快速回复 返回顶部 返回列表