打印
[STM32F1]

进入停止模式,用中断唤醒的问题

[复制链接]
953|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mankaichuang|  楼主 | 2015-1-13 13:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, GPIO, gp, IO, ST
void EXTI1_IRQHandler(void)
{
        delay_ms(10);
        GPIO_ResetBits(GPIOA,GPIO_Pin_5);
        GPIO_SetBits(GPIOA,GPIO_Pin_4);
    if(EXTI_GetITStatus(EXTI_Line1) != RESET)     //检查指定的EXTI1线路触发请求发生与否
        {
            if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1)          //上电时PA1管脚会产生纹波,读取PA1防止数据被误清
            {
                    memset(AK,0xff,16);
                    AK_number=2;
                    delay_ms(1000);
                    GPIO_ResetBits(GPIOA,GPIO_Pin_4);
            }
            EXTI_ClearITPendingBit(EXTI_Line1);  //清除EXTI1线路挂起位
        }
        if(STOP_MODEL())  //判断是否进入STOP模式
        {
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
                PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
        }
}

请教一个问题,STM32F103,进入STOP模式之后,通过中断唤醒,第一次可以通过中断进行唤醒,唤醒之后再次进入STOP模式,当第二次进入STOP模式之后,就再也无法进入此中断唤醒CPU
沙发
zhangyang86| | 2015-1-13 15:30 | 只看该作者
唤醒设置在哪里?

使用特权

评论回复
板凳
mankaichuang|  楼主 | 2015-1-13 16:10 | 只看该作者
zhangyang86 发表于 2015-1-13 15:30
唤醒设置在哪里?

就是通过这个中断进行唤醒,唤醒之后做个操作,完成之后判断是否在进入STOP,通过这个中断,第一次可以进入中断,但是再次进入STOP之后就不能通过这个中断唤醒了,其他的另外一个中断可以唤醒,就这个中断不能唤醒

使用特权

评论回复
地板
mankaichuang|  楼主 | 2015-1-13 16:50 | 只看该作者
找到问题了,该中断中PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI)虽然是最后一句,但是这句执行以后就进入STOP模式了,等于说这个中断没有执行完成,所以在触发这个中断无法进入中断,即无法唤醒,其他中断(应该是优先级高的中断)才可以唤醒,不知道这样理解对不,现在把进入STOP模式扔到外边的大循环中去了,问题已经解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

56

帖子

1

粉丝