Skip to content

Commit 7979f4d

Browse files
committed
SMT32L4 : add missing ST HAL LPUART functions
To enable/disable UART Clock in Stop Mode
1 parent a0d1607 commit 7979f4d

File tree

8 files changed

+90
-1
lines changed

8 files changed

+90
-1
lines changed

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L432xC/device/stm32l432xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13331,6 +13331,11 @@ typedef struct
1333113331
#define USART_CR3_WUFIE_Pos (22U)
1333213332
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1333313333
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
13334+
/* MBED */
13335+
#define USART_CR3_UCESM_Pos (23U)
13336+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
13337+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
13338+
/* MBED */
1333413339
#define USART_CR3_TCBGTIE_Pos (24U)
1333513340
#define USART_CR3_TCBGTIE_Msk (0x1U << USART_CR3_TCBGTIE_Pos) /*!< 0x01000000 */
1333613341
#define USART_CR3_TCBGTIE USART_CR3_TCBGTIE_Msk /*!< Transmission Complete Before Guard Time Interrupt Enable */

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L433xC/device/stm32l433xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14391,6 +14391,11 @@ typedef struct
1439114391
#define USART_CR3_WUFIE_Pos (22U)
1439214392
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1439314393
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
14394+
/* MBED */
14395+
#define USART_CR3_UCESM_Pos (23U)
14396+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
14397+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
14398+
/* MBED */
1439414399
#define USART_CR3_TCBGTIE_Pos (24U)
1439514400
#define USART_CR3_TCBGTIE_Msk (0x1U << USART_CR3_TCBGTIE_Pos) /*!< 0x01000000 */
1439614401
#define USART_CR3_TCBGTIE USART_CR3_TCBGTIE_Msk /*!< Transmission Complete Before Guard Time Interrupt Enable */

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L475xG/device/stm32l475xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15905,6 +15905,11 @@ typedef struct
1590515905
#define USART_CR3_WUFIE_Pos (22U)
1590615906
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1590715907
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
15908+
/* MBED */
15909+
#define USART_CR3_UCESM_Pos (23U)
15910+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
15911+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
15912+
/* MBED */
1590815913

1590915914
/****************** Bit definition for USART_BRR register *******************/
1591015915
#define USART_BRR_DIV_FRACTION_Pos (0U)

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L476xG/device/stm32l476xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16056,6 +16056,11 @@ typedef struct
1605616056
#define USART_CR3_WUFIE_Pos (22U)
1605716057
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1605816058
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
16059+
/* MBED */
16060+
#define USART_CR3_UCESM_Pos (23U)
16061+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
16062+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
16063+
/* MBED */
1605916064

1606016065
/****************** Bit definition for USART_BRR register *******************/
1606116066
#define USART_BRR_DIV_FRACTION_Pos (0U)

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L486xG/device/stm32l486xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16281,6 +16281,11 @@ typedef struct
1628116281
#define USART_CR3_WUFIE_Pos (22U)
1628216282
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1628316283
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
16284+
/* MBED */
16285+
#define USART_CR3_UCESM_Pos (23U)
16286+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
16287+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
16288+
/* MBED */
1628416289

1628516290
/****************** Bit definition for USART_BRR register *******************/
1628616291
#define USART_BRR_DIV_FRACTION_Pos (0U)

targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L496xG/device/stm32l496xx.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17276,6 +17276,11 @@ typedef struct
1727617276
#define USART_CR3_WUFIE_Pos (22U)
1727717277
#define USART_CR3_WUFIE_Msk (0x1U << USART_CR3_WUFIE_Pos) /*!< 0x00400000 */
1727817278
#define USART_CR3_WUFIE USART_CR3_WUFIE_Msk /*!< Wake Up Interrupt Enable */
17279+
/* MBED */
17280+
#define USART_CR3_UCESM_Pos (23U)
17281+
#define USART_CR3_UCESM_Msk (0x1U << USART_CR3_UCESM_Pos) /*!< 0x00800000 */
17282+
#define USART_CR3_UCESM USART_CR3_UCESM_Msk /*!< Clock Enable in Stop mode */
17283+
/* MBED */
1727917284
#define USART_CR3_TCBGTIE_Pos (24U)
1728017285
#define USART_CR3_TCBGTIE_Msk (0x1U << USART_CR3_TCBGTIE_Pos) /*!< 0x01000000 */
1728117286
#define USART_CR3_TCBGTIE USART_CR3_TCBGTIE_Msk /*!< Transmission Complete Before Guard Time Interrupt Enable */

targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_uart_ex.c

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,32 @@ HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart)
472472
return HAL_OK;
473473
}
474474

475+
/* MBED */
476+
/**
477+
* @brief Enable UART Clock in Stop Mode
478+
* The UART keeps the Clock ON during Stop mode
479+
* @param huart: uart handle
480+
* @retval HAL status
481+
*/
482+
HAL_StatusTypeDef HAL_UARTEx_EnableClockStopMode(UART_HandleTypeDef *huart)
483+
{
484+
/* Process Locked */
485+
__HAL_LOCK(huart);
486+
487+
huart->gState = HAL_UART_STATE_BUSY;
488+
489+
/* Set the USART UESM bit */
490+
huart->Instance->CR3 |= USART_CR3_UCESM;
491+
492+
huart->gState = HAL_UART_STATE_READY;
493+
494+
/* Process Unlocked */
495+
__HAL_UNLOCK(huart);
496+
497+
return HAL_OK;
498+
}
499+
/* MBED */
500+
475501
/**
476502
* @brief Disable UART Stop Mode.
477503
* @param huart UART handle.
@@ -495,6 +521,33 @@ HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart)
495521
return HAL_OK;
496522
}
497523

524+
525+
/* MBED */
526+
/**
527+
* @brief Disable UART Clock in Stop Mode
528+
* @param huart: uart handle
529+
* @retval HAL status
530+
*/
531+
HAL_StatusTypeDef HAL_UARTEx_DisableClockStopMode(UART_HandleTypeDef *huart)
532+
{
533+
/* Process Locked */
534+
__HAL_LOCK(huart);
535+
536+
huart->gState = HAL_UART_STATE_BUSY;
537+
538+
/* Clear USART UESM bit */
539+
huart->Instance->CR3 &= ~(USART_CR3_UCESM);
540+
541+
huart->gState = HAL_UART_STATE_READY;
542+
543+
/* Process Unlocked */
544+
__HAL_UNLOCK(huart);
545+
546+
return HAL_OK;
547+
}
548+
/* MBED */
549+
550+
498551
#if defined(USART_CR2_SLVEN)
499552
/**
500553
* @brief Enable the SPI slave mode.

targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_uart_ex.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart);
174174
void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart);
175175
void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart);
176176
#endif
177-
177+
178178
/**
179179
* @}
180180
*/
@@ -186,7 +186,13 @@ void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart);
186186
/* Peripheral Control functions **********************************************/
187187
HAL_StatusTypeDef HAL_UARTEx_StopModeWakeUpSourceConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection);
188188
HAL_StatusTypeDef HAL_UARTEx_EnableStopMode(UART_HandleTypeDef *huart);
189+
/* MBED */
190+
HAL_StatusTypeDef HAL_UARTEx_EnableClockStopMode(UART_HandleTypeDef *huart);
191+
/* MBED */
189192
HAL_StatusTypeDef HAL_UARTEx_DisableStopMode(UART_HandleTypeDef *huart);
193+
/* MBED */
194+
HAL_StatusTypeDef HAL_UARTEx_DisableClockStopMode(UART_HandleTypeDef *huart);
195+
/* MBED */
190196
HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength);
191197

192198
#if defined(USART_CR2_SLVEN)

0 commit comments

Comments
 (0)