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

查看: 9852|回复: 3

求教STM32F103进入STOP模式后用外部中断唤醒的问题

[复制链接]

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
2020-7-2
发表于 2012-8-13 16:26:12 | 显示全部楼层 |阅读模式
 void EXTI0_IRQHandler(void)
{
 
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
        if(EXTI_GetITStatus(EXTI_Line0) != RESET)     //检查指定的EXTI0线路触发请求发生与否
        {
 
                EXTI_ClearITPendingBit(EXTI_Line0);  //清除EXTI0线路挂起位
                EXTI_ClearFlag(EXTI_Line0);          //清楚EXTI0线路挂起标志位
                if(STOP_MODEL())
                {
                        PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
                }
        }
}
 
void EXTI1_IRQHandler(void)
{
 
        ErrorStatus HSEStartUpStatus;
        RCC_HSEConfig(RCC_HSE_ON);
 
          /* Wait till HSE is ready */
        HSEStartUpStatus = RCC_WaitForHSEStartUp();
 
        if(HSEStartUpStatus == SUCCESS)
        {
                /* Select HSE as system clock source */
            RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);
        }
        if(EXTI_GetITStatus(EXTI_Line1) != RESET)     //检查指定的EXTI1线路触发请求发生与否
        {
                EXTI_ClearITPendingBit(EXTI_Line1);  //清除EXTI1线路挂起位
                EXTI_ClearFlag(EXTI_Line1);          //清楚EXTI1线路挂起标志位
        }
}
通过中断0使CPU进入STOP模式,想通过中断1来唤醒,但是无法唤醒
中断配置如下
        GPIO_InitTypeDef GPIO_InitStructure;
         EXTI_InitTypeDef EXTI_InitStructure;
         NVIC_InitTypeDef NVIC_InitStructure;
 
 
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
 
 
//init GPIOB.0          下拉输入
          GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
 
          GPIO_Init(GPIOB, &GPIO_InitStructure);
 
  //GPIOB.0
         GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);
 
         EXTI_InitStructure.EXTI_Line=EXTI_Line0;
          EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
          EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
          EXTI_InitStructure.EXTI_LineCmd = ENABLE;
          EXTI_Init(&EXTI_InitStructure);
 
 
          NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;                       
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;       
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;                               
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
 
          //init GPIOA.1          下拉输入
          GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
 
            //GPIOA.1
          GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource1);
 
          EXTI_InitStructure.EXTI_Line=EXTI_Line1;
          EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
          EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
          EXTI_InitStructure.EXTI_LineCmd = ENABLE;
          EXTI_Init(&EXTI_InitStructure);
 
 
          NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;                       
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;       
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;               
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
新手没有积分,还希望大侠们指点。
回复

使用道具 举报

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
2020-7-2
 楼主| 发表于 2012-8-13 16:31:23 | 显示全部楼层

RE:求教STM32F103进入STOP模式后用外部中断唤醒的问题

不识庐山真面目,只缘身在此山中呀,发完帖子,猛然发现问题了,原来唤醒的中断1的优先级低于中断0,提高优先级搞定了
回复 支持 反对

使用道具 举报

89

主题

485

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2012-8-24 18:17:58 | 显示全部楼层

回复:求教STM32F103进入STOP模式后用外部中断唤醒的问题

不错,恭喜你
回复 支持 反对

使用道具 举报

5

主题

38

回帖

0

蝴蝶豆

中级会员

最后登录
2020-8-12
发表于 2015-6-3 20:48:32 | 显示全部楼层
这个跟中断优先级有什么关系
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版