stm32FL151 WKUP1以及WKUP2引脚,HAL库
时间: 2023-07-02 16:21:57 浏览: 112
WKUP1和WKUP2引脚都是STM32F151系列的唤醒输入引脚,可以用于从低功耗模式中唤醒MCU。使用HAL库进行配置和使用这两个引脚的流程与WKUP2引脚类似,只是引脚号和配置方法不同。
1. 配置WKUP1和WKUP2引脚为唤醒输入模式。可以使用MX_GPIO_Init()函数或者HAL_GPIO_Init()函数进行配置,具体配置方法如下:
```
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
// 配置WKUP1引脚为唤醒输入模式
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_EVT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// 配置WKUP2引脚为唤醒输入模式
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_EVT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
```
2. 配置低功耗模式。可以使用HAL_PWR_EnterSTOPMode()函数进入低功耗模式,具体配置方法如下:
```
// 配置低功耗模式
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
```
3. 唤醒MCU。当WKUP1或WKUP2引脚检测到下降沿时,MCU会自动从低功耗模式中唤醒。可以在main()函数中加入如下代码判断MCU是否从低功耗模式中唤醒:
```
if(__HAL_PWR_GET_FLAG(PWR_FLAG_WU) != RESET)
{
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
// 进行唤醒后的处理
}
```
以上就是使用HAL库进行配置和使用WKUP1和WKUP2引脚的流程。注意在使用这两个引脚时,需要注意唤醒输入的电平和电流的限制,以免引脚损坏或影响MCU的正常工作。