新手上路
- 积分
- 47
- 金钱
- 47
- 注册时间
- 2016-4-28
- 在线时间
- 15 小时
|
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");
}
};
}
|
|