你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
iflytech 提问时间:2017-5-16 15:09 /
本帖最后由 iflytech 于 2017-5-16 15:10 编辑

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

  6. INTERRUPT_HANDLER(EXTI2_IRQHandler, 10)
  7. {
  8.         if(boolMeasureFlg)        lColorValue++;
  9.         EXTI_ClearITPendingBit(EXTI_IT_Pin2);
  10. }
复制代码
中断中仅设置变量标志位。

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

请高人指点!




收藏 1 评论3 发布时间:2017-5-16 15:09

举报

3个回答
zhuoyemp4 回答时间:2017-5-17 09:25:46
肯定是配置问题,你的代码也不全
zhuoyemp4 回答时间:2017-5-17 09:26:09
肯定是配置问题,你的代码也不全
iflytech 回答时间:2017-6-5 17:05:57
搞定了,初始化
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版