[STM32F1] STM32F103 低功耗STOP模式无法唤醒。

[复制链接]
44|1
yxiaoz 发表于 2025-11-20 12:03 | 显示全部楼层 |阅读模式
各位大佬,帮忙看一下,我有个程序,STM32F103C8T6,想用RTC的闹钟唤醒STOP模式,却不成功。测试进STOP模式前,RTC能够正常中断的,进了之后就不能够唤醒了。
进STOP前用下面的计算式记录各寄存器:
                                (((PWR->CR & 0x00000100) >> 8 )<<0) |
                                 (((RCC->BDCR & 0x00008000) >> 15)<<1) |     
                                 (((RCC->BDCR & 0x00000300) >> 8)<<2)|        
                                 (((RCC->BDCR & 0x00000002) >> 1)<<4)|   
                                 (((RTC->CRH & 0x00000002) >> 1)<<5)|         
                                   (((RTC->CRL & 0x00000002) >> 1)<<6)|         
                                   (((RTC->CRL & 0x00000001))<<7)|      
                                   (((EXTI->IMR & 0x00020000) >> 17)<<8)|     
                                   (((EXTI->EMR & 0x00020000) >> 17 )<<9)|   
                                   (((EXTI->PR & 0x00020000) >> 17)<<10)|                                          
                                   (((NVIC->ISER[1] & 0x00000200) >> 9 )<<11)|  
                                   (((NVIC->ISER[0] & 0x00000008) >> 3 )<<12)

这个值记录下来是0x1137。RTC的ALRH/L寄存器和CNTH/L寄存器也记录过,进STOP前确实CNT小,在STOP里长时间后确实比ALRH/L大了,而且比较时间是在正常的计数的。
发现在STOP状态里,RTC虽然在继续计数,但是原本能够产生的闹钟中断标记ALRF和秒标记SECF都不再产生了。请问这是什么原因,还需要查哪些寄存器的设置?

 楼主| yxiaoz 发表于 2025-11-20 12:06 | 显示全部楼层
最好谁提供一个RTC唤醒STOP的小例子可以让我比对一下寄存器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部