打印
[STM32F0]

stm32f030f4p6进入stop模式再次唤醒时钟变慢

[复制链接]
750|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豌豆爹|  楼主 | 2024-1-5 09:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天在调试STM32f030f4p6这颗芯片进入stop模式,然后被唤醒,我是用PA1做的,PA1配置成外部下降沿中断,来做开关键:板子开机  ->  按下PA1  ->  芯片进入stop模式  ->  按下PA1  ->  外部中断将芯片唤醒   。。。

程序处理如下:
void EXti0_1_IRQHandler(void)

{
        if(EXTI_GetITStatus(EXTI_Line1)!= RESET )
        {               
            if(mcu_state == MCU_IS_RUNNING)
                         mcu_state = MCU_IS_STOP;
                else if(mcu_state == MCU_IS_STOP)
                         mcu_state = MCU_IS_RUNNING;
                b_mcu_exti_has_intterrupt = 1;
                EXTI_ClearITPendingBit(EXTI_Line1);
        }

}
然后在main里面:
void MCU_State_Change(void)
{
    if(b_mcu_exti_has_intterrupt)  
    {
        b_mcu_exti_has_intterrupt = 0;
        if(mcu_state == MCU_IS_RUNNING)
                {                  
                  
                }
                else if(mcu_state == MCU_IS_STOP)
                {                    
                    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
                        NVIC_SystemLPConfig(NVIC_LP_SLEEPDEEP,ENABLE);
                        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);                        
                        PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
                }
        }
}
现在发现两个问题:
1.感觉按键不是很灵敏,有时要按几下才能进入休眠,有时休眠要按几下才能唤醒,外部中断我仿真过,每次按下按键都能进到中断里面。

2.芯片进入stop模式之后被唤醒,时钟明显感觉变慢了,我在数码管上做了TIM16计数,我后来在:
if(mcu_state == MCU_IS_RUNNING)
{
          TIM16_For_Tick_Start();                                                  /*开定时器*/
}
这里又将TIM16初始化了一次,感觉还是慢了,不知道是什么问题

使用特权

评论回复
沙发
stormwind123| | 2024-1-9 10:40 | 只看该作者
按键按下时是否是稳定的低电平或高电平,如果不是,那么可能是按键抖动导致的。可以使用软件去抖动。

使用特权

评论回复
板凳
powerantone| | 2024-1-9 10:40 | 只看该作者
检查你的按键连接是否良好,是否有断路或短路的情况。

使用特权

评论回复
地板
stormwind123| | 2024-1-9 10:41 | 只看该作者
检查你的外部中断线是否正常工作,是否有其他的外设或引脚共享这条线,如果有,尝试更换其他的中断线。

使用特权

评论回复
5
classroom| | 2024-1-9 10:41 | 只看该作者
检查你的时钟配置

使用特权

评论回复
6
在曼谷的春| | 2024-1-13 13:02 | 只看该作者
按键加个去抖试试

使用特权

评论回复
7
月亮一键变蓝| | 2024-1-13 15:00 | 只看该作者
按几下的话,估计是因为按键机械性不好?你这信号线上加电容了么?

使用特权

评论回复
8
她已醉| | 2024-1-13 17:00 | 只看该作者
我觉得可能是因为信号没去抖导致的,触发多次

使用特权

评论回复
9
春日负喧| | 2024-1-13 19:00 | 只看该作者
仿真每次都能进来,但是实际应用不行?

使用特权

评论回复
10
故意相遇| | 2024-1-13 21:00 | 只看该作者
加个硬件滤波试试,也就是并个电容试试

使用特权

评论回复
11
一只眠羊| | 2024-1-13 23:00 | 只看该作者
时钟慢了的话,估计是走的内部时钟了吧

使用特权

评论回复
12
白马过平川| | 2024-1-14 02:00 | 只看该作者
估计是外部时钟没初始化成功?默认初始化内部时钟了?

使用特权

评论回复
13
西洲| | 2024-1-14 04:00 | 只看该作者
看看你的时钟树,看看你咋配置的

使用特权

评论回复
14
捧一束彼岸花| | 2024-1-14 08:00 | 只看该作者
之前看介绍说是可能外部时钟没等待初始化成功呢,就走内部时钟,确实会这样

使用特权

评论回复
15
风凉| | 2024-1-14 13:00 | 只看该作者
按键的事儿,你这加个delayms(10)就好了

使用特权

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

本版积分规则

508

主题

1938

帖子

5

粉丝