
根据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无法唤醒。有用过这几个脚唤醒的吗?能否指点下,谢谢 |
ST25R3916有快速读取吗?
STM32L476 Flash擦除失败问题
STM32L562-DK板中居然有个电流测量模块
STM32L433 单片机在串口配置为IRDA模式后,IRDA是否可以在STOP Mode1下唤醒
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
VDD下电后使用VBAT引脚供电时LSE停振?
简单聊聊STM32的SPI外设
关于stm32l431rct6的LPTIM计数模式
STM32L476VGT6 100P的可以直接用stm32u575vg 100P的替换到板子上吗?为啥烧录程序时无法连接?
使用STM32L451CEU6型号的芯片,在用usart(PA9、PA10)进行串口通信时,发送0x55在PC端可以收到正确的数据,但是发送0x80会收到0x00的数据,发送0x01会收到0x7F的数据,串口助手的配置和CubeMX上的配置参数是一样的(都是115200,8N1),请问各位这个是什么原因呀?
其实,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();