打印
[STM32G0]

FreeRTOS中断函数中事件标志设置失败

[复制链接]
226|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gezhia|  楼主 | 2022-9-23 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断函数中xEventGroupSetBitsFromISR执行成功的,也成功执行了portYIELD_FROM_ISR,可是在KeyRead中,xEventGroupWaitBits却一直无法等到。请高人指点一下,代码附下。

void KeyRead(void *p)
{
   
    for(;;)
    {
        
        
        while(1 == xEventGroupWaitBits(EventGroupHandle,Ev_key,pdFALSE,pdFALSE,100))
        {
            
            
           xEventGroupSetBits(EventGroupHandle,Ev_LED);
           xEventGroupClearBits(EventGroupHandle,Ev_key);
        }
        
        osDelay(100);
            
    }
}


void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
  BaseType_t result = pdTRUE,xHigherPriorityTaskWoken;
  
  if(KEY_Pin == GPIO_Pin)
  {
      
      result = xEventGroupSetBitsFromISR(EventGroupHandle,Ev_key,&xHigherPriorityTaskWoken);
      if(pdFAIL != result)
      {
          portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
      }
      //xEventGroupSetBits(EventGroupHandle,Ev_key);
  }
  __HAL_GPIO_EXTI_CLEAR_FALLING_IT(KEY_Pin);
  
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝