初级会员

- 积分
- 71
- 金钱
- 71
- 注册时间
- 2012-7-27
- 在线时间
- 9 小时
|

楼主 |
发表于 2017-3-30 10:14:16
|
显示全部楼层
程序是这样的:
/* Allow PWR Clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
/* Enable Ultra low power mode */
PWR_UltraLowPowerCmd(ENABLE);
/* Enable WKUP pin 1 */
PWR_WakeUpPinCmd(PWR_WakeUpPin_1, ENABLE);
/* Clear WakeUp (WUTF) pending flag */
RTC_ClearFlag(RTC_FLAG_WUTF);
/* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
PWR_EnterSTANDBYMode();
而硬件上,是WKUP(PA0)接了一个10K上拉电阻到VCC,还接一个按键,按键按下当然是低电平GND了。现在呢,如果在最前面设置了WKUP为OUT模式的话,然后再配置WKUP为唤醒键,显然之前的设置又被修改为IN模式了,测试的电流仍然是90uA左右,都是VCC电流灌进WKUP的。当然如果不用WKUP作为唤醒的话,是无所谓设置该端口为OUT模式的,因为经过测试,得到的电流仍然是在几微安之内。是不是PWR_WakeUpPinCmd(PWR_WakeUpPin_1, ENABLE);这个函数惹的祸? |
|