|
用ucosIII例程移植自己做板子 在按键中断中 无法跳出 什么原因,总在中断中执行什么原因,
void KEY1_IRQHandler(void)
{
OS_ERR err;
OSIntEnter(); //进入中断
//确保是否产生了EXTI Line中断
if(EXTI_GetITStatus(KEY1_INT_EXTI_LINE) != RESET)
{
/* 发送任务信号量到任务 AppTaskKey */
OSTaskSemPost((OS_TCB *)&AppTaskKeyTCB, //目标任务
(OS_OPT )OS_OPT_POST_NONE, //没选项要求
(OS_ERR *)&err); //返回错误类型
//清除中断标志位
EXTI_ClearITPendingBit(KEY1_INT_EXTI_LINE);
}
OSIntExit();
}
另个例程中有串口中断和按键中断
OSTaskSemPend ((OS_TICK )0, //无期限等待
(OS_OPT )OS_OPT_PEND_BLOCKING, //如果信号量不可用就等待
(CPU_TS *)0, //获取信号量被发布的时间戳
(OS_ERR *)&err); //返回错误类型
都用了等待函数,程序是怎么区分 按键中断和串口中断呢 |
|