一、LPUART简介
LPUART是Low-power UART的简称,它能够将单片机从停止模式下唤醒,在停止模式下,它能够以极低功耗捕获数据帧,在低功耗产品UART通信中用处很大,本文根据实际项目开发经历阐述STM32L0系列单片机的LPUART使用方法。
LPUART使用HSI作为驱动时钟时,波特率最高达到46kbps,使用LSE(32.768kHz晶振)作为驱动时钟时,波特率最高达到9.6kbps。
二、LPUART初始化配置
(1)GPIO初始化
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF4_LPUART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Alternate = GPIO_AF4_LPUART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
(2)LPUART配置
__HAL_RCC_LPUART1_CLK_ENABLE();
LPUART_InitStruct.BaudRate = 9600;
LPUART_InitStruct.DataWidth = LL_LPUART_DATAWIDTH_8B;
LPUART_InitStruct.StopBits = LL_LPUART_STOPBITS_1;
LPUART_InitStruct.Parity = LL_LPUART_PARITY_NONE;
LPUART_InitStruct.HardwareFlowControl = LL_LPUART_HWCONTROL_NONE;
LPUART_InitStruct.TransferDirection = LL_LPUART_DIRECTION_TX_RX;
LL_LPUART_Init(LPUART1, &LPUART_InitStruct);
LL_USART_SetWKUPType(LPUART1, LL_USART_WAKEUP_ON_RXNE);
L