void Fun_Open()
{
uint8_t unlock_door_result=0xff;
/*--------------------其他代码-----------------------------*/
unlock_door_result=0x02;
OSTaskQPost( (OS_TCB *)&BEEPTaskTCB,
(void *)&unlock_door_result,
(OS_MSG_SIZE )1,
(OS_OPT )OS_OPT_POST_FIFO,
(OS_ERR *)err);
/*-------------------------其他代码-------------------------------*/
}
其他任务接收到的信号量并不是0x02!!!!!!
因为unlock_door_result是一个局部变量,函数调用完成,局部变量的内容就被释放了,此时地址中存放的数据是随机的
解决办法:
1、static uint8_t unlock_door_result=0x02 静态变量
2、unlock_door_result申明为全局变量