OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4197|回复: 5

待机唤醒(闹钟中断唤醒)实验不能被唤醒

[复制链接]

6

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-4-28
在线时间
15 小时
发表于 2016-7-20 12:54:58 | 显示全部楼层 |阅读模式
1金钱
又来麻烦各位大神。 这次做的是待机唤醒(闹钟中断唤醒,程序运行10s,然后休眠30秒唤醒)实验, 程序在精英板没有问题。 但是在我买的f103rc核心板有问题,
第一种情况:跳线帽接电池(有电池),能唤醒;此时去掉跳线帽检测发现3v3引脚电压3.288v, 中间那根线1.5v,电池引脚为3.0v
第二种情况:跳线帽接3v3(电池盒没有电池)进入待机后不能唤醒。实在搞不懂。此时去掉跳线帽检测发现3v3引脚电压3.288v, 中间那根线1v,电池引脚为0v
第三种情况:跳线帽接3v3同时电池盒放电池,根本进入不了待机状态。


请教一下为什么接3v3不能唤醒?如果要改电路,如何改?

代码如下
int main(void)
{         

         u32 flag=0;
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
        uart_init(115200);                 //串口初始化为115200
        LED_Init();                             //LED端口初始化                        
        usmart_dev.init(SystemCoreClock/1000000);        //初始化USMART       
        RTC_Init();                                  //RTC初始化
        RTC_ITConfig(RTC_IT_ALR, DISABLE);//先关闭rtc中断,禁止唤醒
        RTC_WaitForLastTask();
  flag=RTC_GetCounter();         
        printf("待机唤醒实验!\r\n"); //注意待机时间在中断里面设置的
        while(1)
        {                                       
    delay_ms(1000);       
                LED0=!LED0;
               
    printf("运行中!");               
                if(RTC_GetCounter()-flag>10)
                {
;
                        RTC_ITConfig(RTC_IT_ALR, ENABLE);  ////打开rtc中断,启动唤醒
                        RTC_WaitForLastTask();
      printf("马上进入待机!\r\n");
                        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);        //使能PWR外设时钟
                  PWR_EnterSTANDBYMode();          //进入待命(STANDBY)模式
                        printf("已经进入待机!\r\n");
                }       
                                                                  
        };  
}

EU-STM32F103RC 核心开发板原理图.pdf

82.93 KB, 下载次数: 489

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-4-28
在线时间
15 小时
 楼主| 发表于 2016-7-20 16:43:55 | 显示全部楼层
今天又做了一个实验, 把电池扣掉, 从另外的单片机引出3.3v和GND分别连在电池座的正极和负极,然后开机运行,但是进入待机后仍然不能唤醒。 这就非常奇怪了。引出两条线放在电池座上,就相当于一个电池。 为什么直接放电池能运行, 而类似电池的两个引线连接电池座就不可以呢?两者差别无非就是引线3.3v, 电池3.0v
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-7-20 20:01:43 | 显示全部楼层
heighteen 发表于 2016-7-20 16:43
今天又做了一个实验, 把电池扣掉, 从另外的单片机引出3.3v和GND分别连在电池座的正极和负极,然后开机运 ...

不明白你到底是如何接线的。跳线帽是跳到哪里的?》
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-4-28
在线时间
15 小时
 楼主| 发表于 2016-7-20 20:37:57 | 显示全部楼层
跳线帽是调到3v3
回复

使用道具 举报

6

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-4-28
在线时间
15 小时
 楼主| 发表于 2016-7-20 20:39:33 | 显示全部楼层
正点原子 发表于 2016-7-20 20:01
不明白你到底是如何接线的。跳线帽是跳到哪里的?》

跳线帽是调到3v3。 此时出现不能唤醒。 跳线帽跳到电池引脚。 能够唤醒。
回复

使用道具 举报

6

主题

13

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-4-28
在线时间
15 小时
 楼主| 发表于 2016-7-20 20:46:08 | 显示全部楼层
下面实验:跳线帽接在电池引脚,

今天又做了一个实验, 把电池扣掉, 从另外的单片机引出3.3v和GND分别连在电池座的正极和负极,然后开机运行,但是进入待机后仍然不能唤醒。 这就非常奇怪了。引出两条线放在电池座上,就相当于一个电池。 为什么直接放电池能运行, 而类似电池的两个引线连接电池座就不可以呢?两者差别无非就是引线3.3v, 电池3.0v
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 22:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表