stm32f302在程序编译时出现如下错误是怎么引起的?

2019-07-14 17:23发布

..LibSTM32Sourcestm32f30x_hrtim.c(1139): error:  #268: declaration may not appear after executable statement in block
FlagStatus bitstatus = RESET;  
这个是怎么引起的?求高手帮忙解决。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
vmuuertw
1楼-- · 2019-07-15 00:43
 精彩回答 2  元偷偷看……
leilijiao
2楼-- · 2019-07-15 00:54
TOPCB 发表于 2018-9-27 14:29
楼主把前后的代码都发出来。还有FlagStatus 的定义。

FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
{
  assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
  
  FlagStatus bitstatus = RESET;  
  
  switch(TimerIdx)
  {
    case HRTIM_TIMERINDEX_MASTER:
    {
      if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
      {
        bitstatus = SET;
      }
      else
      {
        bitstatus = RESET;
      }
    }
    break;
   
    case HRTIM_TIMERINDEX_TIMER_A:
    case HRTIM_TIMERINDEX_TIMER_B:
    case HRTIM_TIMERINDEX_TIMER_C:
    case HRTIM_TIMERINDEX_TIMER_D:
    case HRTIM_TIMERINDEX_TIMER_E:
    {
      if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
      {
        bitstatus = SET;
      }
      else
      {
        bitstatus = RESET;
      }
    }
    break;

    default:
    break;  
  }   
  return bitstatus;
}
TOPCB
3楼-- · 2019-07-15 04:06
你把assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));放到  FlagStatus bitstatus = RESET;  后面。变量的定义要在语句前面。
leilijiao
4楼-- · 2019-07-15 04:14
TOPCB 发表于 2018-9-27 15:16
你把assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));放到  FlagStatus bitstatus = RESET;  后面。变量的定义要在语句前面。

谢谢你的回复。

一周热门 更多>