[STM8] 请教STM8L152的外部中断唤醒问题!

[复制链接]
3187|3
 楼主| GERALD_WONG 发表于 2014-1-1 20:26 | 显示全部楼层 |阅读模式
代码如下
#define LED3_PORT GPIOE
#define LED3_PIN  GPIO_Pin_7
#define LED4_PORT GPIOC
#define LED4_PIN  GPIO_Pin_7
#define WAKEUP_PORT GPIOE
#define WAKEUP_PIN  GPIO_Pin_6

void main(void)
{
  GPIO_Init(LED3_PORT,LED3_PIN,GPIO_Mode_Out_PP_High_Fast);//输出低电平-高速10M
  GPIO_Init(LED4_PORT,LED4_PIN,GPIO_Mode_Out_PP_High_Fast); //输出低电平-高速10M
  //GPIO_Init(CNT_EN_PORT,CNT_EN_PIN,GPIO_Mode_Out_PP_High_Fast);
  GPIO_Init(WAKEUP_PORT,WAKEUP_PIN,GPIO_Mode_In_FL_IT);//PE6唤醒按键
  //LCD_GLASS_Init();
  //LCD_GLASS_DisplayString("M74HC");
  /* Enable Rising edge port PE6 for wake up conter */
  EXTI->CR2 = 0x10;
  //上升沿或者下载沿都可以
  EXTI_SetPinSensitivity(EXTI_Pin_6, EXTI_Trigger_Rising);
  /* Enable Interrupts */
  
  enableInterrupts();
  
  while (1)
  {
    GPIO_ToggleBits(LED3_PORT,LED3_PIN);
     halt();//进入HALT模式,外部中断能够唤醒
  }
}
目的应该是,LED3闪然后进入停机,等我按键以后LED4闪然后从停机中唤醒出来。为何进入不了停机呢?我没有按键就只有两个LED灯轮流闪,有大侠帮我吗???

以下是stm8l15x_it.c中的代码
INTERRUPT_HANDLER(EXTI6_IRQHandler, 14)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  asm("sim");
  GPIO_ToggleBits(GPIOC,GPIO_Pin_7);
  /* Clear Interrupt pending bit */
  EXTI_ClearITPendingBit(EXTI_IT_Pin6);
  asm("rim");
}
xiaox314 发表于 2014-3-4 14:29 | 显示全部楼层
帮顶一下!
nienianhong 发表于 2014-3-5 14:03 | 显示全部楼层
nienianhong 发表于 2014-3-5 14:05 | 显示全部楼层
搞定问题了么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部