打印
[STM8]

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

[复制链接]
2866|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

粉丝