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

查看: 9854|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版