OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4088|回复: 1

多任务向一个队列插数据,需要加锁吗?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-3-8
在线时间
4 小时
发表于 2021-5-25 10:15:03 来自手机 | 显示全部楼层 |阅读模式
请教各位,我创建一个日志任务,通过串口输出,偶尔出现日志混乱,看源码里面,xQueueGenericSend是有调用prvLockQueue的,不知为何?求教。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-3-8
在线时间
4 小时
 楼主| 发表于 2021-5-25 10:39:06 | 显示全部楼层

void vDtePushToDbgTask(const uint8_t *pucDbgData)
{
    if (pxDbgQueue)
    {
        xQueueSendToBack(pxDbgQueue, pucDbgData, 10);
    }
}
static void prvDbgTask(void)
{
    vOsPrintf(NOTICE, "Start debug task...\r\n");

    while (1)
    {
        char cBuffer[64] = {0};
        if (xQueueReceive(pxDbgQueue, cBuffer, portMAX_DELAY))
        {
            TickType_t xCurrTick = xTaskGetTickCount();
            uint8_t *pucData = (uint8_t *)cBuffer;
            uint16_t usLen = (uint16_t)strlen(cBuffer);
            
            vUsartWriteToUsart1(pucData, usLen); // write to DMA
            vTaskDelayUntil(&xCurrTick, 10);
        }
    }
}
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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