各位原子哥 你们好 我设置了一个消息长度为10的消息队列 在进行一发一收的情况下能够正常工作 然而多次发送消息后接收到的消息就变成0了部分示例代码:
OS_Q KEYQ;
u8 keym;
OSQCreate ((OS_Q* )&KEYQ,
(CPU_CHAR* )"key",
(OS_MSG_QTY )10,
(OS_ERR* )&err);
void task1_task(void *p_arg)
{
u8 *key;
OS_ERR err;
OS_MSG_SIZE size;
while(1)
{
key = (u8 *)OSQPend(&KEYQ,0,OS_OPT_PEND_BLOCKING,&size,0,&err);
printf("½óêÕ½á1û\terr:%d\t½óêÕ:%d\r\n\n\n",err,*key);
OSTimeDlyHMSM(0,0,1,1,OS_OPT_TIME_PERIODIC,&err); //Ñóê±10ms
}
}
void task2_task(void *p_arg)
{
OS_ERR err;
while(1)
{
ledy=~ledy;
keym=key_Scan(0);
if(keym)
{
OSQPost(&KEYQ,(void*)&keym,1,OS_OPT_POST_FIFO,&err);
printf("·¢Ëí½á1û£o\terr%d\t·¢Ëí:%d\r\n",err,keym);
}
OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err); //Ñóê±10ms
}
}
问题描述:
1,一发一收 可以正常工作
一发一收 可以正常工作
2连续按键就会出现0
还请原子哥解惑哦 谢谢
|