判断唤醒
STM32F1单片机在进入待机模式后,可以通过NRST引脚,WKUP引脚,RTC闹钟事件,IWDG复位来唤醒,唤醒后单片机会直接复位,此时如何判断单片机是唤醒复位的你有什么打算呢?或者你想知道什么?
而不是上电复位的
最好是RTC闹钟事件,IWDG复位,这两种方式唤醒
在判断WUF位之前,首先要打开PWR时钟
用STM32F103做低功耗就可以了
单片机进入待机模式,RTC闹钟事件唤醒,通过WUF判断是否为唤醒复位。。。
有标志位的
// 函数名称: RCC_GetFlagStatus
// 功能描述: 检查指定的RCC标志设置与否.
// 输入参数: RCC_FLAG:要检查的标志.
// 这个参数可以是下面的值之一:
// - RCC_FLAG_HSIRDY: HIS振荡时钟就绪
// - RCC_FLAG_HSERDY: HSE振荡时钟就绪
// - RCC_FLAG_PLLRDY: PLL时钟就绪
// - RCC_FLAG_LSERDY: LSE振荡时钟就绪
// - RCC_FLAG_LSIRDY: LSI振荡时钟就绪
// - RCC_FLAG_PINRST: 引脚复位
// - RCC_FLAG_PORRST: POR/PDR复位
// - RCC_FLAG_SFTRST: 软件复位
// - RCC_FLAG_IWDGRST: 独立看门狗复位
// - RCC_FLAG_WWDGRST: 窗口看门狗复位
// - RCC_FLAG_LPWRRST: 低电量复位
// 输出参数: 无
// 返回参数: RCC_FLAG的新状态(SET或RESET).
FlagStatus RCC_GetFlagStatus(u8 RCC_FLAG)来查看!
调用相关库函数。
还有相关库函数?
这种必须的有相关库函数。
看电流好使不
WKUP唤醒Standby,可以通过PWR寄存器的WUF Bit来判断;
IWDG唤醒Standby,可以通过RCC->CSR寄存器内的IWDGRSTF Bit来判定;
RTC唤醒Standby,可以通过PWR寄存器的WUF Bit或者RTC的alam flag来判定。
其中NRST引脚及IWDG严格意义上不叫唤醒,其实际是通过芯片复位来间接实现的Standby退出。 应该通过标志位进行判断吧
写一个小的判断程序
当然可以判断了
在中断里边就可以判断吧
没有考虑过这个问题
手册是最好的老师,最好看en版的。
页:
[1]
2