STM32
直播中

张玲

7年用户 1257经验值
私信 关注
[问答]

STM8L152进不去中断的原因?


void  Comp2_Init()
{
  COMP_DeInit();
  COMP_Init(COMP_InvertingInput_IO,COMP_OutputSelect_TIM2IC2,COMP_Speed_Fast);  
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_4,ENABLE);          //反相输入端配置   PC7
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_5,ENABLE);          //反相输入端配置   PC4
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_6,ENABLE);          //反相输入端配置   PC3

  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_24,ENABLE);         //正相输入端配置  PE5
  COMP_SchmittTriggerCmd(DISABLE);

  COMP_EdgeConfig(COMP_Selection_COMP2,COMP_Edge_Rising_Falling); //边沿触发
  COMP_ITConfig(COMP_Selection_COMP2,ENABLE);             //中断使能   
}

INTERRUPT_HANDLER(TIM2_CC_USART2_RX_IRQHandler,20)
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */  
  u8 i=0;
  if(COMP_GetITStatus(COMP_Selection_COMP2)==SET)
  {

  }

  COMP_ClearITPendingBit(COMP_Selection_COMP2);
}
进不去中断啊
打算 三路负输入 分别跟正输入比较   负端比正端电压高  产生中断


回帖(1)

时见栖鸦

2024-4-30 17:48:04
STM8L152进不去中断的原因可能有以下几点:

1. 中断使能位未设置:请确保在初始化中断之前,已经使能了相应的中断。例如,如果您使用的是TIM2中断,请确保设置了TIM2的使能位。

2. 中断优先级配置错误:请检查中断优先级是否正确设置。如果优先级设置不当,可能导致中断无法被触发。

3. 中断源未配置正确:请检查中断源是否已正确配置。例如,如果您使用的是比较器中断,请确保比较器的输出已经连接到相应的中断输入。

4. 硬件连接问题:请检查硬件连接是否正确。确保比较器的输入和输出引脚已正确连接。

5. 软件配置问题:请检查您的代码配置是否正确。以下是您提供的代码片段,我对其进行了一些修改:

```c
void Comp2_Init(){
  COMP_DeInit();
  COMP_Init(COMP_InvertingInput_IO, COMP_OutputSelect_TIM2IC2, COMP_Speed_Fast);
  
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_4, ENABLE); // 反相输入端配置 PC7
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_5, ENABLE); // 反相输入端配置 PC4
  
  // 确保使能中断
  COMP_ITConfig(ENABLE);
  
  // 配置中断优先级
  COMP_ITPriorityConfig(COMP_ITPriority_Level);
  
  // 使能中断
  TIM2_ITConfig(TIM_IT_Update, ENABLE);
}
```

请确保您的代码中包含了上述修改,并检查其他可能的配置问题。

6. 其他中断冲突:如果系统中存在其他中断,可能会导致中断冲突。请检查其他中断是否已经正确处理,以避免冲突。

7. 硬件问题:如果以上步骤都无法解决问题,请检查STM8L152芯片是否存在硬件问题。可以尝试使用其他芯片进行测试。

请根据这些可能的原因逐一排查,找到导致STM8L152进不去中断的具体原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分