iflytech 发表于 2017-5-16 15:09:28

STM8-Discovery评估板测试中断,求助!

本帖最后由 iflytech 于 2017-5-16 15:10 编辑

测试条件:
MB915B(STM8-Discovery评估板,STM8L152C6)一块,将显示面板拿下,其他跳线保持出厂设置不变。
根据评估板原理,设置UCS及TIM4使能:
      CLK_RTCCLKSwitchOnLSEFailureEnable();
      CLK_LSEClockSecuritySystemEnable();
      CLK_RTCClockConfig(CLK_RTCCLKSource_LSE,CLK_RTCCLKDiv_1);
      CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,ENABLE);初始化IO口,PC7、PE7为发光二极管控制脚,PC1为User按键,PD2设置为外部中断管理,准备检测频率。代码如下:
      GPIO_Init(GPIOC,GPIO_Pin_7,GPIO_Mode_Out_PP_Low_Fast);
      GPIO_Init(GPIOE,GPIO_Pin_7,GPIO_Mode_Out_PP_Low_Fast);TIM4定义如下,1秒间隔:
      TIM4_TimeBaseInit(TIM4_Prescaler_4096,244);
      TIM4_ARRPreloadConfig(ENABLE);
      TIM4_UpdateDisableConfig(DISABLE);
      TIM4_ITConfig(TIM4_IT_Update,ENABLE);
      TIM4_ClearFlag(TIM4_FLAG_Update);
      enableInterrupts();
      TIM4_Cmd(ENABLE);中断函数处理:
INTERRUPT_HANDLER(EXTI1_IRQHandler, 9)
{
      boolButtonFlg=TRUE;
      EXTI_ClearITPendingBit(EXTI_IT_Pin1);
}

INTERRUPT_HANDLER(EXTI2_IRQHandler, 10)
{
      if(boolMeasureFlg)      lColorValue++;
      EXTI_ClearITPendingBit(EXTI_IT_Pin2);
}中断中仅设置变量标志位。

测试问题:
在管脚全悬空状态下,ST-LINK仿真时,一运行到enableInterrupts();处就一直在INTERRUPT_HANDLER(EXTI2_IRQHandler, 10)中断里运行,根本就不退出。将PD2接GND或3.3V亦然。
将PD2定义的三行代码屏蔽,就正常了。但这样就没外部中断响应,肯定是不行的。

请高人指点!




zhuoyemp4 发表于 2017-5-17 09:25:46

肯定是配置问题,你的代码也不全

zhuoyemp4 发表于 2017-5-17 09:26:09

肯定是配置问题,你的代码也不全

iflytech 发表于 2017-6-5 17:05:57

搞定了,初始化
页: [1]
查看完整版本: STM8-Discovery评估板测试中断,求助!