请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L431RCT6 关机模式使用Wakeup唤醒

[复制链接]
jsh560 提问时间:2024-6-13 15:49 / 已解决

根据STM32L431手册,“具有从待机/关机唤醒能力的I/O为:PA0,PC13,PE6,PA2,PC5。” L431没有PE端口,那么就有PA0,PC13,PA2,PC5,想把这四个脚都配置成关机模式下WAKEUP唤醒,根据官方例程序。(所有资料都是配置的PA0)。

代码如下:

GPIO_InitStruct.Pin = EXTI0_Pin|EXTI2_Pin; //PA0,PA2 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

HAL_PWREx_DisableGPIOPullUp(PWR_GPIO_A, PWR_GPIO_BIT_0|PWR_GPIO_BIT_2); HAL_PWREx_EnablePullUpPullDownConfig();

HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1); //PA0 HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4); // PA2

__HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); // 清除待机标志 __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); // 清除全部wakeup pin标志 HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1_LOW); // wakeup pin 1 PA0 HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4_LOW); // PA2

(按照手册上的顺序和Cubemx配置 PA2为WAKEUP_PIN4)

这样的配置,PA0能在低电平唤醒,但PA2无法唤醒。有用过这几个脚唤醒的吗?能否指点下,谢谢

收藏 评论1 发布时间:2024-6-13 15:49

举报

1个回答
xmshao 回答时间:2024-6-14 16:26:02
别的WKUP脚也是可以的。


其实,STM32L4系列的库例程里就有相关应用示例,它用的WKUP脚就不是PA0,而是PC13,即WKUP2脚。


我测试后是完全可以用的。


后来,我尝试改为PA2,即WKUP4,也是可以的。


我看了你提供的部分代码,你那句 __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU)里的PWR_FLAG_WU应该


对应库定义中的PWR_FLAG_WUF4.




    HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN4);




    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WUF4);
   
   
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN4_HIGH);
   
    HAL_PWR_EnterSTANDBYMode();
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版