OpenEdv-开源电子网

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

求助:消息队列无响应

[复制链接]

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2016-7-28
在线时间
25 小时
发表于 2016-8-24 00:04:05 | 显示全部楼层 |阅读模式
1金钱
模仿着UCOS扩展例程\例11-1 UCOSIII消息传递自己写了点,将按键改为串口字符串指令。当接收到某个指令,打开或者关闭相应模块。但是经常出现无法通过串口发送指令关闭工作着的模块,发送其他指令也无响应。可能是什么问题?
相关代码如下
[mw_shl_code=applescript,true]void main_task(void *p_arg)
{
        u8 blue;
        OS_ERR err;
       
        OSTmrStart(&tmr1,&err);
       
        while(1)
        {
                if(allow_blue)
                {
                        allow_blue=0;
                        blue = Message_Scan();  //信息扫描
                        if(blue)
                        {
                                //发送消息
                                OSQPost((OS_Q*                )&BLUE_Msg,               
                                                (void*                )&blue,
                                                (OS_MSG_SIZE)1,
                                                (OS_OPT                )OS_OPT_POST_FIFO,
                                                (OS_ERR*        )&err);
                        }
        }
                OSTimeDlyHMSM(0,0,0,80,OS_OPT_TIME_PERIODIC,&err);
        }
}

//消息扫描处理任务的任务函数
void Blueprocess_task(void *p_arg)
{       
        u8 *blue;
        OS_MSG_SIZE size;
        OS_ERR err;
        while(1)
        {
                //请求消息BLUE_Msg
                blue=OSQPend((OS_Q*                        )&BLUE_Msg,   
                                        (OS_TICK                )0,
                    (OS_OPT                        )OS_OPT_PEND_BLOCKING,//OS_OPT_PEND_BLOCKING
                    (OS_MSG_SIZE*        )&size,               
                    (CPU_TS*                )0,
                    (OS_ERR*                )&err);
                switch(*blue)
                {
                        case MPU6050_ON:
                                allow_6050=1;
                        break;
                        case MPU6050_OFF:
                                allow_6050=0;
                        break;
                        case BH_ON:
                                allow_bh1750=1;
                        break;
                        case BH_OFF:
                                allow_bh1750=0;
                        break;
                        case DIS_ON:
                                allow_dis=1;
                        break;
                        case DIS_OFF:
                                allow_dis=0;
                        break;
                }
                OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_HMSM_STRICT,&err);
        }
}[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2016-8-24 20:20:26 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 20:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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