初级会员
- 积分
- 97
- 金钱
- 97
- 注册时间
- 2016-7-28
- 在线时间
- 25 小时
|
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] |
|