1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
rtc闹钟都配置好了,就是到点之后唤醒不了
===============rtc配置======================= EXti_ClearITPendingBit(EXTI_Line17); EXTI_InitStructure.EXTI_Line = EXTI_Line17; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); /*使能 RTC Wakeup Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //先关闭 RTC_AlarmCmd(RTC_Alarm_A,DISABLE); 才能使用RTC_SetAlarm ret = RTC_AlarmCmd(RTC_Alarm_A,DISABLE); printf("ret = %drn",ret); RTC_AlarmStruct.RTC_AlarmTime.RTC_H12=RTC_HourFormat_24; RTC_AlarmStruct.RTC_AlarmTime.RTC_Hours=9; RTC_AlarmStruct.RTC_AlarmTime.RTC_Minutes=59; RTC_AlarmStruct.RTC_AlarmTime.RTC_Seconds=20; // RTC_AlarmStruct.RTC_AlarmDateWeekDay= // RTC_AlarmStruct.RTC_AlarmDateWeekDaySel= RTC_AlarmStruct.RTC_AlarmMask=RTC_AlarmMask_Seconds | RTC_AlarmMask_Minutes | RTC_AlarmMask_Hours; RTC_SetAlarm(RTC_Format_BIN,RTC_Alarm_A,&RTC_AlarmStruct); RTC_ClearFlag(RTC_FLAG_ALRAF) ===================主函数调用========================= while(1) PWR_EnterSTOPMode( PWR_Regulator_LowPower, PWR_STOPEntry_WFI ); //进去之后就出不来了 求指导 |
|
相关推荐
6个回答
|
|
|
|
|
|
进入停止模式后,有没有试过通过外部中断是否能唤醒。
|
|
|
|
停机模式下的唤醒的中断函数需要注意这两点:
1:对于程序可能产生的标志位必须的清除干净,不清除会出现唤醒失灵现象!! 2:由于停机下所有时钟关闭,所以唤醒需要重新配置时钟!! 参考代码: char Wakeflag=0; void RTCAlarm_IRQHandler(void) { if(RTC_GetFlagStatus(RTC_IT_ALR)) { EXTI_ClearITPendingBit(EXTI_Line17); RTC_ClearITPendingBit(RTC_IT_ALR); RTC_WaitForLastTask(); EXTI_ClearITPendingBit(EXTI_Line7); EXTI_ClearITPendingBit(EXTI_Line1);//对于程序可能产生的标志位必须的清除干净,不清除会出现唤醒失灵现象!! if(PWR_GetFlagStatus(PWR_FLAG_WU) != RESET) { PWR_ClearFlag(PWR_FLAG_WU);//一般没用 } SystemInit();//重要,由于停机下对所有时钟关闭,所以唤醒需要重新配置时钟!! Wakeflag=!Wakeflag; GPIO_WriteBit(GPIOA, GPIO_Pin_5, Wakeflag);//LED灯指示 } } |
|
|
|
60user33 发表于 2018-12-26 19:23 谢谢 |
|
|
|
|
|
|
|
RTC_AlarmStruct.RTC_AlarmMask=RTC_AlarmMask_Seconds | RTC_AlarmMask_Minutes | RTC_AlarmMask_Hours;
这里是把不需要用到的屏蔽掉。按现在的设置应该是到了对应的日期或者星期才会唤醒。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2183 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2011 浏览 3 评论
4612 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2154 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2687 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:56 , Processed in 0.767388 second(s), Total 85, Slave 68 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号