The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_NUCLEO_L011K4/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_ll_usart.h@167:84c0a372a020
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 157:e7ca05fa8600 1 /**
AnnaBridge 157:e7ca05fa8600 2 ******************************************************************************
AnnaBridge 157:e7ca05fa8600 3 * @file stm32l0xx_ll_usart.h
AnnaBridge 157:e7ca05fa8600 4 * @author MCD Application Team
AnnaBridge 157:e7ca05fa8600 5 * @brief Header file of USART LL module.
AnnaBridge 157:e7ca05fa8600 6 ******************************************************************************
AnnaBridge 157:e7ca05fa8600 7 * @attention
AnnaBridge 157:e7ca05fa8600 8 *
AnnaBridge 157:e7ca05fa8600 9 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 157:e7ca05fa8600 10 *
AnnaBridge 157:e7ca05fa8600 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 157:e7ca05fa8600 12 * are permitted provided that the following conditions are met:
AnnaBridge 157:e7ca05fa8600 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 157:e7ca05fa8600 14 * this list of conditions and the following disclaimer.
AnnaBridge 157:e7ca05fa8600 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 157:e7ca05fa8600 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 157:e7ca05fa8600 17 * and/or other materials provided with the distribution.
AnnaBridge 157:e7ca05fa8600 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 157:e7ca05fa8600 19 * may be used to endorse or promote products derived from this software
AnnaBridge 157:e7ca05fa8600 20 * without specific prior written permission.
AnnaBridge 157:e7ca05fa8600 21 *
AnnaBridge 157:e7ca05fa8600 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 157:e7ca05fa8600 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 157:e7ca05fa8600 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 157:e7ca05fa8600 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 157:e7ca05fa8600 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 157:e7ca05fa8600 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 157:e7ca05fa8600 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 157:e7ca05fa8600 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 157:e7ca05fa8600 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 157:e7ca05fa8600 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 157:e7ca05fa8600 32 *
AnnaBridge 157:e7ca05fa8600 33 ******************************************************************************
AnnaBridge 157:e7ca05fa8600 34 */
AnnaBridge 157:e7ca05fa8600 35
AnnaBridge 157:e7ca05fa8600 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 157:e7ca05fa8600 37 #ifndef __STM32L0xx_LL_USART_H
AnnaBridge 157:e7ca05fa8600 38 #define __STM32L0xx_LL_USART_H
AnnaBridge 157:e7ca05fa8600 39
AnnaBridge 157:e7ca05fa8600 40 #ifdef __cplusplus
AnnaBridge 157:e7ca05fa8600 41 extern "C" {
AnnaBridge 157:e7ca05fa8600 42 #endif
AnnaBridge 157:e7ca05fa8600 43
AnnaBridge 157:e7ca05fa8600 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 45 #include "stm32l0xx.h"
AnnaBridge 157:e7ca05fa8600 46
AnnaBridge 157:e7ca05fa8600 47 /** @addtogroup STM32L0xx_LL_Driver
AnnaBridge 157:e7ca05fa8600 48 * @{
AnnaBridge 157:e7ca05fa8600 49 */
AnnaBridge 157:e7ca05fa8600 50
AnnaBridge 157:e7ca05fa8600 51 #if defined (USART1) || defined (USART2) || defined (USART4) || defined (USART5)
AnnaBridge 157:e7ca05fa8600 52
AnnaBridge 157:e7ca05fa8600 53 /** @defgroup USART_LL USART
AnnaBridge 157:e7ca05fa8600 54 * @{
AnnaBridge 157:e7ca05fa8600 55 */
AnnaBridge 157:e7ca05fa8600 56
AnnaBridge 157:e7ca05fa8600 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 59
AnnaBridge 157:e7ca05fa8600 60 /* Private constants ---------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 61 /** @defgroup USART_LL_Private_Constants USART Private Constants
AnnaBridge 157:e7ca05fa8600 62 * @{
AnnaBridge 157:e7ca05fa8600 63 */
AnnaBridge 157:e7ca05fa8600 64
AnnaBridge 157:e7ca05fa8600 65 /* Defines used for the bit position in the register and perform offsets*/
AnnaBridge 157:e7ca05fa8600 66 #define USART_POSITION_CR1_DEDT (uint32_t)16
AnnaBridge 157:e7ca05fa8600 67 #define USART_POSITION_CR1_DEAT (uint32_t)21
AnnaBridge 157:e7ca05fa8600 68 #define USART_POSITION_CR2_ADD (uint32_t)24
AnnaBridge 157:e7ca05fa8600 69 #define USART_POSITION_CR3_SCARCNT (uint32_t)17
AnnaBridge 157:e7ca05fa8600 70 #define USART_POSITION_RTOR_BLEN (uint32_t)24
AnnaBridge 157:e7ca05fa8600 71 #define USART_POSITION_GTPR_GT (uint32_t)8
AnnaBridge 157:e7ca05fa8600 72 /**
AnnaBridge 157:e7ca05fa8600 73 * @}
AnnaBridge 157:e7ca05fa8600 74 */
AnnaBridge 157:e7ca05fa8600 75
AnnaBridge 157:e7ca05fa8600 76 /* Private macros ------------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 77 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 157:e7ca05fa8600 78 /** @defgroup USART_LL_Private_Macros USART Private Macros
AnnaBridge 157:e7ca05fa8600 79 * @{
AnnaBridge 157:e7ca05fa8600 80 */
AnnaBridge 157:e7ca05fa8600 81 /**
AnnaBridge 157:e7ca05fa8600 82 * @}
AnnaBridge 157:e7ca05fa8600 83 */
AnnaBridge 157:e7ca05fa8600 84 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 157:e7ca05fa8600 85
AnnaBridge 157:e7ca05fa8600 86 /* Exported types ------------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 87 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 157:e7ca05fa8600 88 /** @defgroup USART_LL_ES_INIT USART Exported Init structures
AnnaBridge 157:e7ca05fa8600 89 * @{
AnnaBridge 157:e7ca05fa8600 90 */
AnnaBridge 157:e7ca05fa8600 91
AnnaBridge 157:e7ca05fa8600 92 /**
AnnaBridge 157:e7ca05fa8600 93 * @brief LL USART Init Structure definition
AnnaBridge 157:e7ca05fa8600 94 */
AnnaBridge 157:e7ca05fa8600 95 typedef struct
AnnaBridge 157:e7ca05fa8600 96 {
AnnaBridge 157:e7ca05fa8600 97 uint32_t BaudRate; /*!< This field defines expected Usart communication baud rate.
AnnaBridge 157:e7ca05fa8600 98
AnnaBridge 157:e7ca05fa8600 99 This feature can be modified afterwards using unitary function @ref LL_USART_SetBaudRate().*/
AnnaBridge 157:e7ca05fa8600 100
AnnaBridge 157:e7ca05fa8600 101 uint32_t DataWidth; /*!< Specifies the number of data bits transmitted or received in a frame.
AnnaBridge 157:e7ca05fa8600 102 This parameter can be a value of @ref USART_LL_EC_DATAWIDTH.
AnnaBridge 157:e7ca05fa8600 103
AnnaBridge 157:e7ca05fa8600 104 This feature can be modified afterwards using unitary function @ref LL_USART_SetDataWidth().*/
AnnaBridge 157:e7ca05fa8600 105
AnnaBridge 157:e7ca05fa8600 106 uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
AnnaBridge 157:e7ca05fa8600 107 This parameter can be a value of @ref USART_LL_EC_STOPBITS.
AnnaBridge 157:e7ca05fa8600 108
AnnaBridge 157:e7ca05fa8600 109 This feature can be modified afterwards using unitary function @ref LL_USART_SetStopBitsLength().*/
AnnaBridge 157:e7ca05fa8600 110
AnnaBridge 157:e7ca05fa8600 111 uint32_t Parity; /*!< Specifies the parity mode.
AnnaBridge 157:e7ca05fa8600 112 This parameter can be a value of @ref USART_LL_EC_PARITY.
AnnaBridge 157:e7ca05fa8600 113
AnnaBridge 157:e7ca05fa8600 114 This feature can be modified afterwards using unitary function @ref LL_USART_SetParity().*/
AnnaBridge 157:e7ca05fa8600 115
AnnaBridge 157:e7ca05fa8600 116 uint32_t TransferDirection; /*!< Specifies whether the Receive and/or Transmit mode is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 117 This parameter can be a value of @ref USART_LL_EC_DIRECTION.
AnnaBridge 157:e7ca05fa8600 118
AnnaBridge 157:e7ca05fa8600 119 This feature can be modified afterwards using unitary function @ref LL_USART_SetTransferDirection().*/
AnnaBridge 157:e7ca05fa8600 120
AnnaBridge 157:e7ca05fa8600 121 uint32_t HardwareFlowControl; /*!< Specifies whether the hardware flow control mode is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 122 This parameter can be a value of @ref USART_LL_EC_HWCONTROL.
AnnaBridge 157:e7ca05fa8600 123
AnnaBridge 157:e7ca05fa8600 124 This feature can be modified afterwards using unitary function @ref LL_USART_SetHWFlowCtrl().*/
AnnaBridge 157:e7ca05fa8600 125
AnnaBridge 157:e7ca05fa8600 126 uint32_t OverSampling; /*!< Specifies whether USART oversampling mode is 16 or 8.
AnnaBridge 157:e7ca05fa8600 127 This parameter can be a value of @ref USART_LL_EC_OVERSAMPLING.
AnnaBridge 157:e7ca05fa8600 128
AnnaBridge 157:e7ca05fa8600 129 This feature can be modified afterwards using unitary function @ref LL_USART_SetOverSampling().*/
AnnaBridge 157:e7ca05fa8600 130
AnnaBridge 157:e7ca05fa8600 131 } LL_USART_InitTypeDef;
AnnaBridge 157:e7ca05fa8600 132
AnnaBridge 157:e7ca05fa8600 133 /**
AnnaBridge 157:e7ca05fa8600 134 * @brief LL USART Clock Init Structure definition
AnnaBridge 157:e7ca05fa8600 135 */
AnnaBridge 157:e7ca05fa8600 136 typedef struct
AnnaBridge 157:e7ca05fa8600 137 {
AnnaBridge 157:e7ca05fa8600 138 uint32_t ClockOutput; /*!< Specifies whether the USART clock is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 139 This parameter can be a value of @ref USART_LL_EC_CLOCK.
AnnaBridge 157:e7ca05fa8600 140
AnnaBridge 157:e7ca05fa8600 141 USART HW configuration can be modified afterwards using unitary functions
AnnaBridge 157:e7ca05fa8600 142 @ref LL_USART_EnableSCLKOutput() or @ref LL_USART_DisableSCLKOutput().
AnnaBridge 157:e7ca05fa8600 143 For more details, refer to description of this function. */
AnnaBridge 157:e7ca05fa8600 144
AnnaBridge 157:e7ca05fa8600 145 uint32_t ClockPolarity; /*!< Specifies the steady state of the serial clock.
AnnaBridge 157:e7ca05fa8600 146 This parameter can be a value of @ref USART_LL_EC_POLARITY.
AnnaBridge 157:e7ca05fa8600 147
AnnaBridge 157:e7ca05fa8600 148 USART HW configuration can be modified afterwards using unitary functions @ref LL_USART_SetClockPolarity().
AnnaBridge 157:e7ca05fa8600 149 For more details, refer to description of this function. */
AnnaBridge 157:e7ca05fa8600 150
AnnaBridge 157:e7ca05fa8600 151 uint32_t ClockPhase; /*!< Specifies the clock transition on which the bit capture is made.
AnnaBridge 157:e7ca05fa8600 152 This parameter can be a value of @ref USART_LL_EC_PHASE.
AnnaBridge 157:e7ca05fa8600 153
AnnaBridge 157:e7ca05fa8600 154 USART HW configuration can be modified afterwards using unitary functions @ref LL_USART_SetClockPhase().
AnnaBridge 157:e7ca05fa8600 155 For more details, refer to description of this function. */
AnnaBridge 157:e7ca05fa8600 156
AnnaBridge 157:e7ca05fa8600 157 uint32_t LastBitClockPulse; /*!< Specifies whether the clock pulse corresponding to the last transmitted
AnnaBridge 157:e7ca05fa8600 158 data bit (MSB) has to be output on the SCLK pin in synchronous mode.
AnnaBridge 157:e7ca05fa8600 159 This parameter can be a value of @ref USART_LL_EC_LASTCLKPULSE.
AnnaBridge 157:e7ca05fa8600 160
AnnaBridge 157:e7ca05fa8600 161 USART HW configuration can be modified afterwards using unitary functions @ref LL_USART_SetLastClkPulseOutput().
AnnaBridge 157:e7ca05fa8600 162 For more details, refer to description of this function. */
AnnaBridge 157:e7ca05fa8600 163
AnnaBridge 157:e7ca05fa8600 164 } LL_USART_ClockInitTypeDef;
AnnaBridge 157:e7ca05fa8600 165
AnnaBridge 157:e7ca05fa8600 166 /**
AnnaBridge 157:e7ca05fa8600 167 * @}
AnnaBridge 157:e7ca05fa8600 168 */
AnnaBridge 157:e7ca05fa8600 169 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 157:e7ca05fa8600 170
AnnaBridge 157:e7ca05fa8600 171 /* Exported constants --------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 172 /** @defgroup USART_LL_Exported_Constants USART Exported Constants
AnnaBridge 157:e7ca05fa8600 173 * @{
AnnaBridge 157:e7ca05fa8600 174 */
AnnaBridge 157:e7ca05fa8600 175
AnnaBridge 157:e7ca05fa8600 176 /** @defgroup USART_LL_EC_CLEAR_FLAG Clear Flags Defines
AnnaBridge 157:e7ca05fa8600 177 * @brief Flags defines which can be used with LL_USART_WriteReg function
AnnaBridge 157:e7ca05fa8600 178 * @{
AnnaBridge 157:e7ca05fa8600 179 */
AnnaBridge 157:e7ca05fa8600 180 #define LL_USART_ICR_PECF USART_ICR_PECF /*!< Parity error flag */
AnnaBridge 157:e7ca05fa8600 181 #define LL_USART_ICR_FECF USART_ICR_FECF /*!< Framing error flag */
AnnaBridge 157:e7ca05fa8600 182 #define LL_USART_ICR_NCF USART_ICR_NCF /*!< Noise detected flag */
AnnaBridge 157:e7ca05fa8600 183 #define LL_USART_ICR_ORECF USART_ICR_ORECF /*!< Overrun error flag */
AnnaBridge 157:e7ca05fa8600 184 #define LL_USART_ICR_IDLECF USART_ICR_IDLECF /*!< Idle line detected flag */
AnnaBridge 157:e7ca05fa8600 185 #define LL_USART_ICR_TCCF USART_ICR_TCCF /*!< Transmission complete flag */
AnnaBridge 157:e7ca05fa8600 186 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 187 #define LL_USART_ICR_TCBGTCF USART_ICR_TCBGTCF /*!< Transmission completed before guard time flag */
AnnaBridge 157:e7ca05fa8600 188 #endif
AnnaBridge 157:e7ca05fa8600 189 #define LL_USART_ICR_LBDCF USART_ICR_LBDCF /*!< LIN break detection flag */
AnnaBridge 157:e7ca05fa8600 190 #define LL_USART_ICR_CTSCF USART_ICR_CTSCF /*!< CTS flag */
AnnaBridge 157:e7ca05fa8600 191 #define LL_USART_ICR_RTOCF USART_ICR_RTOCF /*!< Receiver timeout flag */
AnnaBridge 157:e7ca05fa8600 192 #define LL_USART_ICR_EOBCF USART_ICR_EOBCF /*!< End of block flag */
AnnaBridge 157:e7ca05fa8600 193 #define LL_USART_ICR_CMCF USART_ICR_CMCF /*!< Character match flag */
AnnaBridge 157:e7ca05fa8600 194 #define LL_USART_ICR_WUCF USART_ICR_WUCF /*!< Wakeup from Stop mode flag */
AnnaBridge 157:e7ca05fa8600 195 /**
AnnaBridge 157:e7ca05fa8600 196 * @}
AnnaBridge 157:e7ca05fa8600 197 */
AnnaBridge 157:e7ca05fa8600 198
AnnaBridge 157:e7ca05fa8600 199 /** @defgroup USART_LL_EC_GET_FLAG Get Flags Defines
AnnaBridge 157:e7ca05fa8600 200 * @brief Flags defines which can be used with LL_USART_ReadReg function
AnnaBridge 157:e7ca05fa8600 201 * @{
AnnaBridge 157:e7ca05fa8600 202 */
AnnaBridge 157:e7ca05fa8600 203 #define LL_USART_ISR_PE USART_ISR_PE /*!< Parity error flag */
AnnaBridge 157:e7ca05fa8600 204 #define LL_USART_ISR_FE USART_ISR_FE /*!< Framing error flag */
AnnaBridge 157:e7ca05fa8600 205 #define LL_USART_ISR_NE USART_ISR_NE /*!< Noise detected flag */
AnnaBridge 157:e7ca05fa8600 206 #define LL_USART_ISR_ORE USART_ISR_ORE /*!< Overrun error flag */
AnnaBridge 157:e7ca05fa8600 207 #define LL_USART_ISR_IDLE USART_ISR_IDLE /*!< Idle line detected flag */
AnnaBridge 157:e7ca05fa8600 208 #define LL_USART_ISR_RXNE USART_ISR_RXNE /*!< Read data register not empty flag */
AnnaBridge 157:e7ca05fa8600 209 #define LL_USART_ISR_TC USART_ISR_TC /*!< Transmission complete flag */
AnnaBridge 157:e7ca05fa8600 210 #define LL_USART_ISR_TXE USART_ISR_TXE /*!< Transmit data register empty flag */
AnnaBridge 157:e7ca05fa8600 211 #define LL_USART_ISR_LBDF USART_ISR_LBDF /*!< LIN break detection flag */
AnnaBridge 157:e7ca05fa8600 212 #define LL_USART_ISR_CTSIF USART_ISR_CTSIF /*!< CTS interrupt flag */
AnnaBridge 157:e7ca05fa8600 213 #define LL_USART_ISR_CTS USART_ISR_CTS /*!< CTS flag */
AnnaBridge 157:e7ca05fa8600 214 #define LL_USART_ISR_RTOF USART_ISR_RTOF /*!< Receiver timeout flag */
AnnaBridge 157:e7ca05fa8600 215 #define LL_USART_ISR_EOBF USART_ISR_EOBF /*!< End of block flag */
AnnaBridge 157:e7ca05fa8600 216 #define LL_USART_ISR_ABRE USART_ISR_ABRE /*!< Auto baud rate error flag */
AnnaBridge 157:e7ca05fa8600 217 #define LL_USART_ISR_ABRF USART_ISR_ABRF /*!< Auto baud rate flag */
AnnaBridge 157:e7ca05fa8600 218 #define LL_USART_ISR_BUSY USART_ISR_BUSY /*!< Busy flag */
AnnaBridge 157:e7ca05fa8600 219 #define LL_USART_ISR_CMF USART_ISR_CMF /*!< Character match flag */
AnnaBridge 157:e7ca05fa8600 220 #define LL_USART_ISR_SBKF USART_ISR_SBKF /*!< Send break flag */
AnnaBridge 157:e7ca05fa8600 221 #define LL_USART_ISR_RWU USART_ISR_RWU /*!< Receiver wakeup from Mute mode flag */
AnnaBridge 157:e7ca05fa8600 222 #define LL_USART_ISR_WUF USART_ISR_WUF /*!< Wakeup from Stop mode flag */
AnnaBridge 157:e7ca05fa8600 223 #define LL_USART_ISR_TEACK USART_ISR_TEACK /*!< Transmit enable acknowledge flag */
AnnaBridge 157:e7ca05fa8600 224 #define LL_USART_ISR_REACK USART_ISR_REACK /*!< Receive enable acknowledge flag */
AnnaBridge 157:e7ca05fa8600 225 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 226 #define LL_USART_ISR_TCBGT USART_ISR_TCBGT /*!< Transmission complete before guard time completion flag */
AnnaBridge 157:e7ca05fa8600 227 #endif
AnnaBridge 157:e7ca05fa8600 228 /**
AnnaBridge 157:e7ca05fa8600 229 * @}
AnnaBridge 157:e7ca05fa8600 230 */
AnnaBridge 157:e7ca05fa8600 231
AnnaBridge 157:e7ca05fa8600 232 /** @defgroup USART_LL_EC_IT IT Defines
AnnaBridge 157:e7ca05fa8600 233 * @brief IT defines which can be used with LL_USART_ReadReg and LL_USART_WriteReg functions
AnnaBridge 157:e7ca05fa8600 234 * @{
AnnaBridge 157:e7ca05fa8600 235 */
AnnaBridge 157:e7ca05fa8600 236 #define LL_USART_CR1_IDLEIE USART_CR1_IDLEIE /*!< IDLE interrupt enable */
AnnaBridge 157:e7ca05fa8600 237 #define LL_USART_CR1_RXNEIE USART_CR1_RXNEIE /*!< Read data register not empty interrupt enable */
AnnaBridge 157:e7ca05fa8600 238 #define LL_USART_CR1_TCIE USART_CR1_TCIE /*!< Transmission complete interrupt enable */
AnnaBridge 157:e7ca05fa8600 239 #define LL_USART_CR1_TXEIE USART_CR1_TXEIE /*!< Transmit data register empty interrupt enable */
AnnaBridge 157:e7ca05fa8600 240 #define LL_USART_CR1_PEIE USART_CR1_PEIE /*!< Parity error */
AnnaBridge 157:e7ca05fa8600 241 #define LL_USART_CR1_CMIE USART_CR1_CMIE /*!< Character match interrupt enable */
AnnaBridge 157:e7ca05fa8600 242 #define LL_USART_CR1_RTOIE USART_CR1_RTOIE /*!< Receiver timeout interrupt enable */
AnnaBridge 157:e7ca05fa8600 243 #define LL_USART_CR1_EOBIE USART_CR1_EOBIE /*!< End of Block interrupt enable */
AnnaBridge 157:e7ca05fa8600 244 #define LL_USART_CR2_LBDIE USART_CR2_LBDIE /*!< LIN break detection interrupt enable */
AnnaBridge 157:e7ca05fa8600 245 #define LL_USART_CR3_EIE USART_CR3_EIE /*!< Error interrupt enable */
AnnaBridge 157:e7ca05fa8600 246 #define LL_USART_CR3_CTSIE USART_CR3_CTSIE /*!< CTS interrupt enable */
AnnaBridge 157:e7ca05fa8600 247 #define LL_USART_CR3_WUFIE USART_CR3_WUFIE /*!< Wakeup from Stop mode interrupt enable */
AnnaBridge 157:e7ca05fa8600 248 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 249 #define LL_USART_CR3_TCBGTIE USART_CR3_TCBGTIE /*!< Transmission complete before guard time interrupt enable */
AnnaBridge 157:e7ca05fa8600 250 #endif
AnnaBridge 157:e7ca05fa8600 251 /**
AnnaBridge 157:e7ca05fa8600 252 * @}
AnnaBridge 157:e7ca05fa8600 253 */
AnnaBridge 157:e7ca05fa8600 254
AnnaBridge 157:e7ca05fa8600 255 /** @defgroup USART_LL_EC_DIRECTION Communication Direction
AnnaBridge 157:e7ca05fa8600 256 * @{
AnnaBridge 157:e7ca05fa8600 257 */
AnnaBridge 157:e7ca05fa8600 258 #define LL_USART_DIRECTION_NONE (uint32_t)0x00000000U /*!< Transmitter and Receiver are disabled */
AnnaBridge 157:e7ca05fa8600 259 #define LL_USART_DIRECTION_RX USART_CR1_RE /*!< Transmitter is disabled and Receiver is enabled */
AnnaBridge 157:e7ca05fa8600 260 #define LL_USART_DIRECTION_TX USART_CR1_TE /*!< Transmitter is enabled and Receiver is disabled */
AnnaBridge 157:e7ca05fa8600 261 #define LL_USART_DIRECTION_TX_RX (USART_CR1_TE |USART_CR1_RE) /*!< Transmitter and Receiver are enabled */
AnnaBridge 157:e7ca05fa8600 262 /**
AnnaBridge 157:e7ca05fa8600 263 * @}
AnnaBridge 157:e7ca05fa8600 264 */
AnnaBridge 157:e7ca05fa8600 265
AnnaBridge 157:e7ca05fa8600 266 /** @defgroup USART_LL_EC_PARITY Parity Control
AnnaBridge 157:e7ca05fa8600 267 * @{
AnnaBridge 157:e7ca05fa8600 268 */
AnnaBridge 157:e7ca05fa8600 269 #define LL_USART_PARITY_NONE (uint32_t)0x00000000U /*!< Parity control disabled */
AnnaBridge 157:e7ca05fa8600 270 #define LL_USART_PARITY_EVEN USART_CR1_PCE /*!< Parity control enabled and Even Parity is selected */
AnnaBridge 157:e7ca05fa8600 271 #define LL_USART_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) /*!< Parity control enabled and Odd Parity is selected */
AnnaBridge 157:e7ca05fa8600 272 /**
AnnaBridge 157:e7ca05fa8600 273 * @}
AnnaBridge 157:e7ca05fa8600 274 */
AnnaBridge 157:e7ca05fa8600 275
AnnaBridge 157:e7ca05fa8600 276 /** @defgroup USART_LL_EC_WAKEUP Wakeup
AnnaBridge 157:e7ca05fa8600 277 * @{
AnnaBridge 157:e7ca05fa8600 278 */
AnnaBridge 157:e7ca05fa8600 279 #define LL_USART_WAKEUP_IDLELINE (uint32_t)0x00000000U /*!< USART wake up from Mute mode on Idle Line */
AnnaBridge 157:e7ca05fa8600 280 #define LL_USART_WAKEUP_ADDRESSMARK USART_CR1_WAKE /*!< USART wake up from Mute mode on Address Mark */
AnnaBridge 157:e7ca05fa8600 281 /**
AnnaBridge 157:e7ca05fa8600 282 * @}
AnnaBridge 157:e7ca05fa8600 283 */
AnnaBridge 157:e7ca05fa8600 284
AnnaBridge 157:e7ca05fa8600 285 /** @defgroup USART_LL_EC_DATAWIDTH Datawidth
AnnaBridge 157:e7ca05fa8600 286 * @{
AnnaBridge 157:e7ca05fa8600 287 */
AnnaBridge 157:e7ca05fa8600 288 #define LL_USART_DATAWIDTH_7B USART_CR1_M1 /*!< 7 bits word length : Start bit, 7 data bits, n stop bits */
AnnaBridge 157:e7ca05fa8600 289 #define LL_USART_DATAWIDTH_8B (uint32_t)0x00000000U /*!< 8 bits word length : Start bit, 8 data bits, n stop bits */
AnnaBridge 157:e7ca05fa8600 290 #define LL_USART_DATAWIDTH_9B USART_CR1_M0 /*!< 9 bits word length : Start bit, 9 data bits, n stop bits */
AnnaBridge 157:e7ca05fa8600 291 /**
AnnaBridge 157:e7ca05fa8600 292 * @}
AnnaBridge 157:e7ca05fa8600 293 */
AnnaBridge 157:e7ca05fa8600 294
AnnaBridge 157:e7ca05fa8600 295 /** @defgroup USART_LL_EC_OVERSAMPLING Oversampling
AnnaBridge 157:e7ca05fa8600 296 * @{
AnnaBridge 157:e7ca05fa8600 297 */
AnnaBridge 157:e7ca05fa8600 298 #define LL_USART_OVERSAMPLING_16 (uint32_t)0x00000000U /*!< Oversampling by 16 */
AnnaBridge 157:e7ca05fa8600 299 #define LL_USART_OVERSAMPLING_8 USART_CR1_OVER8 /*!< Oversampling by 8 */
AnnaBridge 157:e7ca05fa8600 300 /**
AnnaBridge 157:e7ca05fa8600 301 * @}
AnnaBridge 157:e7ca05fa8600 302 */
AnnaBridge 157:e7ca05fa8600 303
AnnaBridge 157:e7ca05fa8600 304 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 157:e7ca05fa8600 305 /** @defgroup USART_LL_EC_CLOCK Clock Signal
AnnaBridge 157:e7ca05fa8600 306 * @{
AnnaBridge 157:e7ca05fa8600 307 */
AnnaBridge 157:e7ca05fa8600 308
AnnaBridge 157:e7ca05fa8600 309 #define LL_USART_CLOCK_DISABLE (uint32_t)0x00000000U /*!< Clock signal not provided */
AnnaBridge 157:e7ca05fa8600 310 #define LL_USART_CLOCK_ENABLE USART_CR2_CLKEN /*!< Clock signal provided */
AnnaBridge 157:e7ca05fa8600 311 /**
AnnaBridge 157:e7ca05fa8600 312 * @}
AnnaBridge 157:e7ca05fa8600 313 */
AnnaBridge 157:e7ca05fa8600 314 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 157:e7ca05fa8600 315
AnnaBridge 157:e7ca05fa8600 316 /** @defgroup USART_LL_EC_LASTCLKPULSE Last Clock Pulse
AnnaBridge 157:e7ca05fa8600 317 * @{
AnnaBridge 157:e7ca05fa8600 318 */
AnnaBridge 157:e7ca05fa8600 319 #define LL_USART_LASTCLKPULSE_NO_OUTPUT (uint32_t)0x00000000U /*!< The clock pulse of the last data bit is not output to the SCLK pin */
AnnaBridge 157:e7ca05fa8600 320 #define LL_USART_LASTCLKPULSE_OUTPUT USART_CR2_LBCL /*!< The clock pulse of the last data bit is output to the SCLK pin */
AnnaBridge 157:e7ca05fa8600 321 /**
AnnaBridge 157:e7ca05fa8600 322 * @}
AnnaBridge 157:e7ca05fa8600 323 */
AnnaBridge 157:e7ca05fa8600 324
AnnaBridge 157:e7ca05fa8600 325 /** @defgroup USART_LL_EC_PHASE Clock Phase
AnnaBridge 157:e7ca05fa8600 326 * @{
AnnaBridge 157:e7ca05fa8600 327 */
AnnaBridge 157:e7ca05fa8600 328 #define LL_USART_PHASE_1EDGE (uint32_t)0x00000000U /*!< The first clock transition is the first data capture edge */
AnnaBridge 157:e7ca05fa8600 329 #define LL_USART_PHASE_2EDGE USART_CR2_CPHA /*!< The second clock transition is the first data capture edge */
AnnaBridge 157:e7ca05fa8600 330 /**
AnnaBridge 157:e7ca05fa8600 331 * @}
AnnaBridge 157:e7ca05fa8600 332 */
AnnaBridge 157:e7ca05fa8600 333
AnnaBridge 157:e7ca05fa8600 334 /** @defgroup USART_LL_EC_POLARITY Clock Polarity
AnnaBridge 157:e7ca05fa8600 335 * @{
AnnaBridge 157:e7ca05fa8600 336 */
AnnaBridge 157:e7ca05fa8600 337 #define LL_USART_POLARITY_LOW (uint32_t)0x00000000U /*!< Steady low value on SCLK pin outside transmission window*/
AnnaBridge 157:e7ca05fa8600 338 #define LL_USART_POLARITY_HIGH USART_CR2_CPOL /*!< Steady high value on SCLK pin outside transmission window */
AnnaBridge 157:e7ca05fa8600 339 /**
AnnaBridge 157:e7ca05fa8600 340 * @}
AnnaBridge 157:e7ca05fa8600 341 */
AnnaBridge 157:e7ca05fa8600 342
AnnaBridge 157:e7ca05fa8600 343 /** @defgroup USART_LL_EC_STOPBITS Stop Bits
AnnaBridge 157:e7ca05fa8600 344 * @{
AnnaBridge 157:e7ca05fa8600 345 */
AnnaBridge 157:e7ca05fa8600 346 #define LL_USART_STOPBITS_0_5 USART_CR2_STOP_0 /*!< 0.5 stop bit */
AnnaBridge 157:e7ca05fa8600 347 #define LL_USART_STOPBITS_1 (uint32_t)0x00000000U /*!< 1 stop bit */
AnnaBridge 157:e7ca05fa8600 348 #define LL_USART_STOPBITS_1_5 (USART_CR2_STOP_0 | USART_CR2_STOP_1) /*!< 1.5 stop bits */
AnnaBridge 157:e7ca05fa8600 349 #define LL_USART_STOPBITS_2 USART_CR2_STOP_1 /*!< 2 stop bits */
AnnaBridge 157:e7ca05fa8600 350 /**
AnnaBridge 157:e7ca05fa8600 351 * @}
AnnaBridge 157:e7ca05fa8600 352 */
AnnaBridge 157:e7ca05fa8600 353
AnnaBridge 157:e7ca05fa8600 354 /** @defgroup USART_LL_EC_TXRX TX RX Pins Swap
AnnaBridge 157:e7ca05fa8600 355 * @{
AnnaBridge 157:e7ca05fa8600 356 */
AnnaBridge 157:e7ca05fa8600 357 #define LL_USART_TXRX_STANDARD (uint32_t)0x00000000U /*!< TX/RX pins are used as defined in standard pinout */
AnnaBridge 157:e7ca05fa8600 358 #define LL_USART_TXRX_SWAPPED (USART_CR2_SWAP) /*!< TX and RX pins functions are swapped. */
AnnaBridge 157:e7ca05fa8600 359 /**
AnnaBridge 157:e7ca05fa8600 360 * @}
AnnaBridge 157:e7ca05fa8600 361 */
AnnaBridge 157:e7ca05fa8600 362
AnnaBridge 157:e7ca05fa8600 363 /** @defgroup USART_LL_EC_RXPIN_LEVEL RX Pin Active Level Inversion
AnnaBridge 157:e7ca05fa8600 364 * @{
AnnaBridge 157:e7ca05fa8600 365 */
AnnaBridge 157:e7ca05fa8600 366 #define LL_USART_RXPIN_LEVEL_STANDARD (uint32_t)0x00000000U /*!< RX pin signal works using the standard logic levels */
AnnaBridge 157:e7ca05fa8600 367 #define LL_USART_RXPIN_LEVEL_INVERTED (USART_CR2_RXINV) /*!< RX pin signal values are inverted. */
AnnaBridge 157:e7ca05fa8600 368 /**
AnnaBridge 157:e7ca05fa8600 369 * @}
AnnaBridge 157:e7ca05fa8600 370 */
AnnaBridge 157:e7ca05fa8600 371
AnnaBridge 157:e7ca05fa8600 372 /** @defgroup USART_LL_EC_TXPIN_LEVEL TX Pin Active Level Inversion
AnnaBridge 157:e7ca05fa8600 373 * @{
AnnaBridge 157:e7ca05fa8600 374 */
AnnaBridge 157:e7ca05fa8600 375 #define LL_USART_TXPIN_LEVEL_STANDARD (uint32_t)0x00000000U /*!< TX pin signal works using the standard logic levels */
AnnaBridge 157:e7ca05fa8600 376 #define LL_USART_TXPIN_LEVEL_INVERTED (USART_CR2_TXINV) /*!< TX pin signal values are inverted. */
AnnaBridge 157:e7ca05fa8600 377 /**
AnnaBridge 157:e7ca05fa8600 378 * @}
AnnaBridge 157:e7ca05fa8600 379 */
AnnaBridge 157:e7ca05fa8600 380
AnnaBridge 157:e7ca05fa8600 381 /** @defgroup USART_LL_EC_BINARY_LOGIC Binary Data Inversion
AnnaBridge 157:e7ca05fa8600 382 * @{
AnnaBridge 157:e7ca05fa8600 383 */
AnnaBridge 157:e7ca05fa8600 384 #define LL_USART_BINARY_LOGIC_POSITIVE (uint32_t)0x00000000U /*!< Logical data from the data register are send/received in positive/direct logic. (1=H, 0=L) */
AnnaBridge 157:e7ca05fa8600 385 #define LL_USART_BINARY_LOGIC_NEGATIVE USART_CR2_DATAINV /*!< Logical data from the data register are send/received in negative/inverse logic. (1=L, 0=H). The parity bit is also inverted. */
AnnaBridge 157:e7ca05fa8600 386 /**
AnnaBridge 157:e7ca05fa8600 387 * @}
AnnaBridge 157:e7ca05fa8600 388 */
AnnaBridge 157:e7ca05fa8600 389
AnnaBridge 157:e7ca05fa8600 390 /** @defgroup USART_LL_EC_BITORDER Bit Order
AnnaBridge 157:e7ca05fa8600 391 * @{
AnnaBridge 157:e7ca05fa8600 392 */
AnnaBridge 157:e7ca05fa8600 393 #define LL_USART_BITORDER_LSBFIRST (uint32_t)0x00000000U /*!< data is transmitted/received with data bit 0 first, following the start bit */
AnnaBridge 157:e7ca05fa8600 394 #define LL_USART_BITORDER_MSBFIRST USART_CR2_MSBFIRST /*!< data is transmitted/received with the MSB first, following the start bit */
AnnaBridge 157:e7ca05fa8600 395 /**
AnnaBridge 157:e7ca05fa8600 396 * @}
AnnaBridge 157:e7ca05fa8600 397 */
AnnaBridge 157:e7ca05fa8600 398
AnnaBridge 157:e7ca05fa8600 399 /** @defgroup USART_LL_EC_AUTOBAUD_DETECT_ON Autobaud Detection
AnnaBridge 157:e7ca05fa8600 400 * @{
AnnaBridge 157:e7ca05fa8600 401 */
AnnaBridge 157:e7ca05fa8600 402 #define LL_USART_AUTOBAUD_DETECT_ON_STARTBIT (uint32_t)0x00000000U /*!< Measurement of the start bit is used to detect the baud rate */
AnnaBridge 157:e7ca05fa8600 403 #define LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE USART_CR2_ABRMODE_0 /*!< Falling edge to falling edge measurement. Received frame must start with a single bit = 1 -> Frame = Start10xxxxxx */
AnnaBridge 157:e7ca05fa8600 404 #define LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME USART_CR2_ABRMODE_1 /*!< 0x7F frame detection */
AnnaBridge 157:e7ca05fa8600 405 #define LL_USART_AUTOBAUD_DETECT_ON_55_FRAME (USART_CR2_ABRMODE_1 | USART_CR2_ABRMODE_0) /*!< 0x55 frame detection */
AnnaBridge 157:e7ca05fa8600 406 /**
AnnaBridge 157:e7ca05fa8600 407 * @}
AnnaBridge 157:e7ca05fa8600 408 */
AnnaBridge 157:e7ca05fa8600 409
AnnaBridge 157:e7ca05fa8600 410 /** @defgroup USART_LL_EC_ADDRESS_DETECT Address Length Detection
AnnaBridge 157:e7ca05fa8600 411 * @{
AnnaBridge 157:e7ca05fa8600 412 */
AnnaBridge 157:e7ca05fa8600 413 #define LL_USART_ADDRESS_DETECT_4B (uint32_t)0x00000000U /*!< 4-bit address detection method selected */
AnnaBridge 157:e7ca05fa8600 414 #define LL_USART_ADDRESS_DETECT_7B USART_CR2_ADDM7 /*!< 7-bit address detection (in 8-bit data mode) method selected */
AnnaBridge 157:e7ca05fa8600 415 /**
AnnaBridge 157:e7ca05fa8600 416 * @}
AnnaBridge 157:e7ca05fa8600 417 */
AnnaBridge 157:e7ca05fa8600 418
AnnaBridge 157:e7ca05fa8600 419 /** @defgroup USART_LL_EC_HWCONTROL Hardware Control
AnnaBridge 157:e7ca05fa8600 420 * @{
AnnaBridge 157:e7ca05fa8600 421 */
AnnaBridge 157:e7ca05fa8600 422 #define LL_USART_HWCONTROL_NONE (uint32_t)0x00000000U /*!< CTS and RTS hardware flow control disabled */
AnnaBridge 157:e7ca05fa8600 423 #define LL_USART_HWCONTROL_RTS USART_CR3_RTSE /*!< RTS output enabled, data is only requested when there is space in the receive buffer */
AnnaBridge 157:e7ca05fa8600 424 #define LL_USART_HWCONTROL_CTS USART_CR3_CTSE /*!< CTS mode enabled, data is only transmitted when the nCTS input is asserted (tied to 0) */
AnnaBridge 157:e7ca05fa8600 425 #define LL_USART_HWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /*!< CTS and RTS hardware flow control enabled */
AnnaBridge 157:e7ca05fa8600 426 /**
AnnaBridge 157:e7ca05fa8600 427 * @}
AnnaBridge 157:e7ca05fa8600 428 */
AnnaBridge 157:e7ca05fa8600 429
AnnaBridge 157:e7ca05fa8600 430 /** @defgroup USART_LL_EC_WAKEUP_ON Wakeup Activation
AnnaBridge 157:e7ca05fa8600 431 * @{
AnnaBridge 157:e7ca05fa8600 432 */
AnnaBridge 157:e7ca05fa8600 433 #define LL_USART_WAKEUP_ON_ADDRESS (uint32_t)0x00000000U /*!< Wake up active on address match */
AnnaBridge 157:e7ca05fa8600 434 #define LL_USART_WAKEUP_ON_STARTBIT USART_CR3_WUS_1 /*!< Wake up active on Start bit detection */
AnnaBridge 157:e7ca05fa8600 435 #define LL_USART_WAKEUP_ON_RXNE (USART_CR3_WUS_0 | USART_CR3_WUS_1) /*!< Wake up active on RXNE */
AnnaBridge 157:e7ca05fa8600 436 /**
AnnaBridge 157:e7ca05fa8600 437 * @}
AnnaBridge 157:e7ca05fa8600 438 */
AnnaBridge 157:e7ca05fa8600 439
AnnaBridge 157:e7ca05fa8600 440 /** @defgroup USART_LL_EC_IRDA_POWER IrDA Power
AnnaBridge 157:e7ca05fa8600 441 * @{
AnnaBridge 157:e7ca05fa8600 442 */
AnnaBridge 157:e7ca05fa8600 443 #define LL_USART_IRDA_POWER_NORMAL (uint32_t)0x00000000U /*!< IrDA normal power mode */
AnnaBridge 157:e7ca05fa8600 444 #define LL_USART_IRDA_POWER_LOW USART_CR3_IRLP /*!< IrDA low power mode */
AnnaBridge 157:e7ca05fa8600 445 /**
AnnaBridge 157:e7ca05fa8600 446 * @}
AnnaBridge 157:e7ca05fa8600 447 */
AnnaBridge 157:e7ca05fa8600 448
AnnaBridge 157:e7ca05fa8600 449 /** @defgroup USART_LL_EC_LINBREAK_DETECT LIN Break Detection Length
AnnaBridge 157:e7ca05fa8600 450 * @{
AnnaBridge 157:e7ca05fa8600 451 */
AnnaBridge 157:e7ca05fa8600 452 #define LL_USART_LINBREAK_DETECT_10B (uint32_t)0x00000000U /*!< 10-bit break detection method selected */
AnnaBridge 157:e7ca05fa8600 453 #define LL_USART_LINBREAK_DETECT_11B USART_CR2_LBDL /*!< 11-bit break detection method selected */
AnnaBridge 157:e7ca05fa8600 454 /**
AnnaBridge 157:e7ca05fa8600 455 * @}
AnnaBridge 157:e7ca05fa8600 456 */
AnnaBridge 157:e7ca05fa8600 457
AnnaBridge 157:e7ca05fa8600 458 /** @defgroup USART_LL_EC_DE_POLARITY Driver Enable Polarity
AnnaBridge 157:e7ca05fa8600 459 * @{
AnnaBridge 157:e7ca05fa8600 460 */
AnnaBridge 157:e7ca05fa8600 461 #define LL_USART_DE_POLARITY_HIGH (uint32_t)0x00000000U /*!< DE signal is active high */
AnnaBridge 157:e7ca05fa8600 462 #define LL_USART_DE_POLARITY_LOW USART_CR3_DEP /*!< DE signal is active low */
AnnaBridge 157:e7ca05fa8600 463 /**
AnnaBridge 157:e7ca05fa8600 464 * @}
AnnaBridge 157:e7ca05fa8600 465 */
AnnaBridge 157:e7ca05fa8600 466
AnnaBridge 157:e7ca05fa8600 467 /** @defgroup USART_LL_EC_DMA_REG_DATA DMA Register Data
AnnaBridge 157:e7ca05fa8600 468 * @{
AnnaBridge 157:e7ca05fa8600 469 */
AnnaBridge 157:e7ca05fa8600 470 #define LL_USART_DMA_REG_DATA_TRANSMIT (uint32_t)0U /*!< Get address of data register used for transmission */
AnnaBridge 157:e7ca05fa8600 471 #define LL_USART_DMA_REG_DATA_RECEIVE (uint32_t)1U /*!< Get address of data register used for reception */
AnnaBridge 157:e7ca05fa8600 472 /**
AnnaBridge 157:e7ca05fa8600 473 * @}
AnnaBridge 157:e7ca05fa8600 474 */
AnnaBridge 157:e7ca05fa8600 475
AnnaBridge 157:e7ca05fa8600 476 /**
AnnaBridge 157:e7ca05fa8600 477 * @}
AnnaBridge 157:e7ca05fa8600 478 */
AnnaBridge 157:e7ca05fa8600 479
AnnaBridge 157:e7ca05fa8600 480 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 481 /** @defgroup USART_LL_Exported_Macros USART Exported Macros
AnnaBridge 157:e7ca05fa8600 482 * @{
AnnaBridge 157:e7ca05fa8600 483 */
AnnaBridge 157:e7ca05fa8600 484
AnnaBridge 157:e7ca05fa8600 485 /** @defgroup USART_LL_EM_WRITE_READ Common Write and read registers Macros
AnnaBridge 157:e7ca05fa8600 486 * @{
AnnaBridge 157:e7ca05fa8600 487 */
AnnaBridge 157:e7ca05fa8600 488
AnnaBridge 157:e7ca05fa8600 489 /**
AnnaBridge 157:e7ca05fa8600 490 * @brief Write a value in USART register
AnnaBridge 157:e7ca05fa8600 491 * @param __INSTANCE__ USART Instance
AnnaBridge 157:e7ca05fa8600 492 * @param __REG__ Register to be written
AnnaBridge 157:e7ca05fa8600 493 * @param __VALUE__ Value to be written in the register
AnnaBridge 157:e7ca05fa8600 494 * @retval None
AnnaBridge 157:e7ca05fa8600 495 */
AnnaBridge 157:e7ca05fa8600 496 #define LL_USART_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 157:e7ca05fa8600 497
AnnaBridge 157:e7ca05fa8600 498 /**
AnnaBridge 157:e7ca05fa8600 499 * @brief Read a value in USART register
AnnaBridge 157:e7ca05fa8600 500 * @param __INSTANCE__ USART Instance
AnnaBridge 157:e7ca05fa8600 501 * @param __REG__ Register to be read
AnnaBridge 157:e7ca05fa8600 502 * @retval Register value
AnnaBridge 157:e7ca05fa8600 503 */
AnnaBridge 157:e7ca05fa8600 504 #define LL_USART_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 157:e7ca05fa8600 505 /**
AnnaBridge 157:e7ca05fa8600 506 * @}
AnnaBridge 157:e7ca05fa8600 507 */
AnnaBridge 157:e7ca05fa8600 508
AnnaBridge 157:e7ca05fa8600 509 /** @defgroup USART_LL_EM_Exported_Macros_Helper Exported_Macros_Helper
AnnaBridge 157:e7ca05fa8600 510 * @{
AnnaBridge 157:e7ca05fa8600 511 */
AnnaBridge 157:e7ca05fa8600 512
AnnaBridge 157:e7ca05fa8600 513 /**
AnnaBridge 157:e7ca05fa8600 514 * @brief Compute USARTDIV value according to Peripheral Clock and
AnnaBridge 157:e7ca05fa8600 515 * expected Baud Rate in 8 bits sampling mode (32 bits value of USARTDIV is returned)
AnnaBridge 157:e7ca05fa8600 516 * @param __PERIPHCLK__ Peripheral Clock frequency used for USART instance
AnnaBridge 157:e7ca05fa8600 517 * @param __BAUDRATE__ Baud rate value to achieve
AnnaBridge 157:e7ca05fa8600 518 * @retval USARTDIV value to be used for BRR register filling in OverSampling_8 case
AnnaBridge 157:e7ca05fa8600 519 */
AnnaBridge 157:e7ca05fa8600 520 #define __LL_USART_DIV_SAMPLING8(__PERIPHCLK__, __BAUDRATE__) ((((__PERIPHCLK__)*2) + ((__BAUDRATE__)/2))/(__BAUDRATE__))
AnnaBridge 157:e7ca05fa8600 521
AnnaBridge 157:e7ca05fa8600 522 /**
AnnaBridge 157:e7ca05fa8600 523 * @brief Compute USARTDIV value according to Peripheral Clock and
AnnaBridge 157:e7ca05fa8600 524 * expected Baud Rate in 16 bits sampling mode (32 bits value of USARTDIV is returned)
AnnaBridge 157:e7ca05fa8600 525 * @param __PERIPHCLK__ Peripheral Clock frequency used for USART instance
AnnaBridge 157:e7ca05fa8600 526 * @param __BAUDRATE__ Baud rate value to achieve
AnnaBridge 157:e7ca05fa8600 527 * @retval USARTDIV value to be used for BRR register filling in OverSampling_16 case
AnnaBridge 157:e7ca05fa8600 528 */
AnnaBridge 157:e7ca05fa8600 529 #define __LL_USART_DIV_SAMPLING16(__PERIPHCLK__, __BAUDRATE__) (((__PERIPHCLK__) + ((__BAUDRATE__)/2))/(__BAUDRATE__))
AnnaBridge 157:e7ca05fa8600 530
AnnaBridge 157:e7ca05fa8600 531 /**
AnnaBridge 157:e7ca05fa8600 532 * @}
AnnaBridge 157:e7ca05fa8600 533 */
AnnaBridge 157:e7ca05fa8600 534
AnnaBridge 157:e7ca05fa8600 535 /**
AnnaBridge 157:e7ca05fa8600 536 * @}
AnnaBridge 157:e7ca05fa8600 537 */
AnnaBridge 157:e7ca05fa8600 538
AnnaBridge 157:e7ca05fa8600 539 /* Exported functions --------------------------------------------------------*/
AnnaBridge 157:e7ca05fa8600 540
AnnaBridge 157:e7ca05fa8600 541 /** @defgroup USART_LL_Exported_Functions USART Exported Functions
AnnaBridge 157:e7ca05fa8600 542 * @{
AnnaBridge 157:e7ca05fa8600 543 */
AnnaBridge 157:e7ca05fa8600 544
AnnaBridge 157:e7ca05fa8600 545 /** @defgroup USART_LL_EF_Configuration Configuration functions
AnnaBridge 157:e7ca05fa8600 546 * @{
AnnaBridge 157:e7ca05fa8600 547 */
AnnaBridge 157:e7ca05fa8600 548
AnnaBridge 157:e7ca05fa8600 549 /**
AnnaBridge 157:e7ca05fa8600 550 * @brief USART Enable
AnnaBridge 157:e7ca05fa8600 551 * @rmtoll CR1 UE LL_USART_Enable
AnnaBridge 157:e7ca05fa8600 552 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 553 * @retval None
AnnaBridge 157:e7ca05fa8600 554 */
AnnaBridge 157:e7ca05fa8600 555 __STATIC_INLINE void LL_USART_Enable(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 556 {
AnnaBridge 157:e7ca05fa8600 557 SET_BIT(USARTx->CR1, USART_CR1_UE);
AnnaBridge 157:e7ca05fa8600 558 }
AnnaBridge 157:e7ca05fa8600 559
AnnaBridge 157:e7ca05fa8600 560 /**
AnnaBridge 157:e7ca05fa8600 561 * @brief USART Disable (all USART prescalers and outputs are disabled)
AnnaBridge 157:e7ca05fa8600 562 * @note When USART is disabled, USART prescalers and outputs are stopped immediately,
AnnaBridge 157:e7ca05fa8600 563 * and current operations are discarded. The configuration of the USART is kept, but all the status
AnnaBridge 157:e7ca05fa8600 564 * flags, in the USARTx_ISR are set to their default values.
AnnaBridge 157:e7ca05fa8600 565 * @rmtoll CR1 UE LL_USART_Disable
AnnaBridge 157:e7ca05fa8600 566 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 567 * @retval None
AnnaBridge 157:e7ca05fa8600 568 */
AnnaBridge 157:e7ca05fa8600 569 __STATIC_INLINE void LL_USART_Disable(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 570 {
AnnaBridge 157:e7ca05fa8600 571 CLEAR_BIT(USARTx->CR1, USART_CR1_UE);
AnnaBridge 157:e7ca05fa8600 572 }
AnnaBridge 157:e7ca05fa8600 573
AnnaBridge 157:e7ca05fa8600 574 /**
AnnaBridge 157:e7ca05fa8600 575 * @brief Indicate if USART is enabled
AnnaBridge 157:e7ca05fa8600 576 * @rmtoll CR1 UE LL_USART_IsEnabled
AnnaBridge 157:e7ca05fa8600 577 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 578 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 579 */
AnnaBridge 157:e7ca05fa8600 580 __STATIC_INLINE uint32_t LL_USART_IsEnabled(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 581 {
AnnaBridge 157:e7ca05fa8600 582 return (READ_BIT(USARTx->CR1, USART_CR1_UE) == (USART_CR1_UE));
AnnaBridge 157:e7ca05fa8600 583 }
AnnaBridge 157:e7ca05fa8600 584
AnnaBridge 157:e7ca05fa8600 585 /**
AnnaBridge 157:e7ca05fa8600 586 * @brief USART enabled in STOP Mode.
AnnaBridge 157:e7ca05fa8600 587 * @note When this function is enabled, USART is able to wake up the MCU from Stop mode, provided that
AnnaBridge 157:e7ca05fa8600 588 * USART clock selection is HSI or LSE in RCC.
AnnaBridge 157:e7ca05fa8600 589 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 590 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 591 * @rmtoll CR1 UESM LL_USART_EnableInStopMode
AnnaBridge 157:e7ca05fa8600 592 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 593 * @retval None
AnnaBridge 157:e7ca05fa8600 594 */
AnnaBridge 157:e7ca05fa8600 595 __STATIC_INLINE void LL_USART_EnableInStopMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 596 {
AnnaBridge 157:e7ca05fa8600 597 SET_BIT(USARTx->CR1, USART_CR1_UESM);
AnnaBridge 157:e7ca05fa8600 598 }
AnnaBridge 157:e7ca05fa8600 599
AnnaBridge 157:e7ca05fa8600 600 /**
AnnaBridge 157:e7ca05fa8600 601 * @brief USART disabled in STOP Mode.
AnnaBridge 157:e7ca05fa8600 602 * @note When this function is disabled, USART is not able to wake up the MCU from Stop mode
AnnaBridge 157:e7ca05fa8600 603 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 604 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 605 * @rmtoll CR1 UESM LL_USART_DisableInStopMode
AnnaBridge 157:e7ca05fa8600 606 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 607 * @retval None
AnnaBridge 157:e7ca05fa8600 608 */
AnnaBridge 157:e7ca05fa8600 609 __STATIC_INLINE void LL_USART_DisableInStopMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 610 {
AnnaBridge 157:e7ca05fa8600 611 CLEAR_BIT(USARTx->CR1, USART_CR1_UESM);
AnnaBridge 157:e7ca05fa8600 612 }
AnnaBridge 157:e7ca05fa8600 613
AnnaBridge 157:e7ca05fa8600 614 /**
AnnaBridge 157:e7ca05fa8600 615 * @brief Indicate if USART is enabled in STOP Mode (able to wake up MCU from Stop mode or not)
AnnaBridge 157:e7ca05fa8600 616 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 617 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 618 * @rmtoll CR1 UESM LL_USART_IsEnabledInStopMode
AnnaBridge 157:e7ca05fa8600 619 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 620 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 621 */
AnnaBridge 157:e7ca05fa8600 622 __STATIC_INLINE uint32_t LL_USART_IsEnabledInStopMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 623 {
AnnaBridge 157:e7ca05fa8600 624 return (READ_BIT(USARTx->CR1, USART_CR1_UESM) == (USART_CR1_UESM));
AnnaBridge 157:e7ca05fa8600 625 }
AnnaBridge 157:e7ca05fa8600 626
AnnaBridge 157:e7ca05fa8600 627 /**
AnnaBridge 157:e7ca05fa8600 628 * @brief Receiver Enable (Receiver is enabled and begins searching for a start bit)
AnnaBridge 157:e7ca05fa8600 629 * @rmtoll CR1 RE LL_USART_EnableDirectionRx
AnnaBridge 157:e7ca05fa8600 630 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 631 * @retval None
AnnaBridge 157:e7ca05fa8600 632 */
AnnaBridge 157:e7ca05fa8600 633 __STATIC_INLINE void LL_USART_EnableDirectionRx(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 634 {
AnnaBridge 157:e7ca05fa8600 635 SET_BIT(USARTx->CR1, USART_CR1_RE);
AnnaBridge 157:e7ca05fa8600 636 }
AnnaBridge 157:e7ca05fa8600 637
AnnaBridge 157:e7ca05fa8600 638 /**
AnnaBridge 157:e7ca05fa8600 639 * @brief Receiver Disable
AnnaBridge 157:e7ca05fa8600 640 * @rmtoll CR1 RE LL_USART_DisableDirectionRx
AnnaBridge 157:e7ca05fa8600 641 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 642 * @retval None
AnnaBridge 157:e7ca05fa8600 643 */
AnnaBridge 157:e7ca05fa8600 644 __STATIC_INLINE void LL_USART_DisableDirectionRx(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 645 {
AnnaBridge 157:e7ca05fa8600 646 CLEAR_BIT(USARTx->CR1, USART_CR1_RE);
AnnaBridge 157:e7ca05fa8600 647 }
AnnaBridge 157:e7ca05fa8600 648
AnnaBridge 157:e7ca05fa8600 649 /**
AnnaBridge 157:e7ca05fa8600 650 * @brief Transmitter Enable
AnnaBridge 157:e7ca05fa8600 651 * @rmtoll CR1 TE LL_USART_EnableDirectionTx
AnnaBridge 157:e7ca05fa8600 652 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 653 * @retval None
AnnaBridge 157:e7ca05fa8600 654 */
AnnaBridge 157:e7ca05fa8600 655 __STATIC_INLINE void LL_USART_EnableDirectionTx(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 656 {
AnnaBridge 157:e7ca05fa8600 657 SET_BIT(USARTx->CR1, USART_CR1_TE);
AnnaBridge 157:e7ca05fa8600 658 }
AnnaBridge 157:e7ca05fa8600 659
AnnaBridge 157:e7ca05fa8600 660 /**
AnnaBridge 157:e7ca05fa8600 661 * @brief Transmitter Disable
AnnaBridge 157:e7ca05fa8600 662 * @rmtoll CR1 TE LL_USART_DisableDirectionTx
AnnaBridge 157:e7ca05fa8600 663 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 664 * @retval None
AnnaBridge 157:e7ca05fa8600 665 */
AnnaBridge 157:e7ca05fa8600 666 __STATIC_INLINE void LL_USART_DisableDirectionTx(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 667 {
AnnaBridge 157:e7ca05fa8600 668 CLEAR_BIT(USARTx->CR1, USART_CR1_TE);
AnnaBridge 157:e7ca05fa8600 669 }
AnnaBridge 157:e7ca05fa8600 670
AnnaBridge 157:e7ca05fa8600 671 /**
AnnaBridge 157:e7ca05fa8600 672 * @brief Configure simultaneously enabled/disabled states
AnnaBridge 157:e7ca05fa8600 673 * of Transmitter and Receiver
AnnaBridge 157:e7ca05fa8600 674 * @rmtoll CR1 RE LL_USART_SetTransferDirection\n
AnnaBridge 157:e7ca05fa8600 675 * CR1 TE LL_USART_SetTransferDirection
AnnaBridge 157:e7ca05fa8600 676 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 677 * @param TransferDirection This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 678 * @arg @ref LL_USART_DIRECTION_NONE
AnnaBridge 157:e7ca05fa8600 679 * @arg @ref LL_USART_DIRECTION_RX
AnnaBridge 157:e7ca05fa8600 680 * @arg @ref LL_USART_DIRECTION_TX
AnnaBridge 157:e7ca05fa8600 681 * @arg @ref LL_USART_DIRECTION_TX_RX
AnnaBridge 157:e7ca05fa8600 682 * @retval None
AnnaBridge 157:e7ca05fa8600 683 */
AnnaBridge 157:e7ca05fa8600 684 __STATIC_INLINE void LL_USART_SetTransferDirection(USART_TypeDef *USARTx, uint32_t TransferDirection)
AnnaBridge 157:e7ca05fa8600 685 {
AnnaBridge 157:e7ca05fa8600 686 MODIFY_REG(USARTx->CR1, USART_CR1_RE | USART_CR1_TE, TransferDirection);
AnnaBridge 157:e7ca05fa8600 687 }
AnnaBridge 157:e7ca05fa8600 688
AnnaBridge 157:e7ca05fa8600 689 /**
AnnaBridge 157:e7ca05fa8600 690 * @brief Return enabled/disabled states of Transmitter and Receiver
AnnaBridge 157:e7ca05fa8600 691 * @rmtoll CR1 RE LL_USART_GetTransferDirection\n
AnnaBridge 157:e7ca05fa8600 692 * CR1 TE LL_USART_GetTransferDirection
AnnaBridge 157:e7ca05fa8600 693 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 694 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 695 * @arg @ref LL_USART_DIRECTION_NONE
AnnaBridge 157:e7ca05fa8600 696 * @arg @ref LL_USART_DIRECTION_RX
AnnaBridge 157:e7ca05fa8600 697 * @arg @ref LL_USART_DIRECTION_TX
AnnaBridge 157:e7ca05fa8600 698 * @arg @ref LL_USART_DIRECTION_TX_RX
AnnaBridge 157:e7ca05fa8600 699 */
AnnaBridge 157:e7ca05fa8600 700 __STATIC_INLINE uint32_t LL_USART_GetTransferDirection(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 701 {
AnnaBridge 157:e7ca05fa8600 702 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_RE | USART_CR1_TE));
AnnaBridge 157:e7ca05fa8600 703 }
AnnaBridge 157:e7ca05fa8600 704
AnnaBridge 157:e7ca05fa8600 705 /**
AnnaBridge 157:e7ca05fa8600 706 * @brief Configure Parity (enabled/disabled and parity mode if enabled).
AnnaBridge 157:e7ca05fa8600 707 * @note This function selects if hardware parity control (generation and detection) is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 708 * When the parity control is enabled (Odd or Even), computed parity bit is inserted at the MSB position
AnnaBridge 157:e7ca05fa8600 709 * (9th or 8th bit depending on data width) and parity is checked on the received data.
AnnaBridge 157:e7ca05fa8600 710 * @rmtoll CR1 PS LL_USART_SetParity\n
AnnaBridge 157:e7ca05fa8600 711 * CR1 PCE LL_USART_SetParity
AnnaBridge 157:e7ca05fa8600 712 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 713 * @param Parity This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 714 * @arg @ref LL_USART_PARITY_NONE
AnnaBridge 157:e7ca05fa8600 715 * @arg @ref LL_USART_PARITY_EVEN
AnnaBridge 157:e7ca05fa8600 716 * @arg @ref LL_USART_PARITY_ODD
AnnaBridge 157:e7ca05fa8600 717 * @retval None
AnnaBridge 157:e7ca05fa8600 718 */
AnnaBridge 157:e7ca05fa8600 719 __STATIC_INLINE void LL_USART_SetParity(USART_TypeDef *USARTx, uint32_t Parity)
AnnaBridge 157:e7ca05fa8600 720 {
AnnaBridge 157:e7ca05fa8600 721 MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE, Parity);
AnnaBridge 157:e7ca05fa8600 722 }
AnnaBridge 157:e7ca05fa8600 723
AnnaBridge 157:e7ca05fa8600 724 /**
AnnaBridge 157:e7ca05fa8600 725 * @brief Return Parity configuration (enabled/disabled and parity mode if enabled)
AnnaBridge 157:e7ca05fa8600 726 * @rmtoll CR1 PS LL_USART_GetParity\n
AnnaBridge 157:e7ca05fa8600 727 * CR1 PCE LL_USART_GetParity
AnnaBridge 157:e7ca05fa8600 728 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 729 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 730 * @arg @ref LL_USART_PARITY_NONE
AnnaBridge 157:e7ca05fa8600 731 * @arg @ref LL_USART_PARITY_EVEN
AnnaBridge 157:e7ca05fa8600 732 * @arg @ref LL_USART_PARITY_ODD
AnnaBridge 157:e7ca05fa8600 733 */
AnnaBridge 157:e7ca05fa8600 734 __STATIC_INLINE uint32_t LL_USART_GetParity(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 735 {
AnnaBridge 157:e7ca05fa8600 736 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE));
AnnaBridge 157:e7ca05fa8600 737 }
AnnaBridge 157:e7ca05fa8600 738
AnnaBridge 157:e7ca05fa8600 739 /**
AnnaBridge 157:e7ca05fa8600 740 * @brief Set Receiver Wake Up method from Mute mode.
AnnaBridge 157:e7ca05fa8600 741 * @rmtoll CR1 WAKE LL_USART_SetWakeUpMethod
AnnaBridge 157:e7ca05fa8600 742 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 743 * @param Method This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 744 * @arg @ref LL_USART_WAKEUP_IDLELINE
AnnaBridge 157:e7ca05fa8600 745 * @arg @ref LL_USART_WAKEUP_ADDRESSMARK
AnnaBridge 157:e7ca05fa8600 746 * @retval None
AnnaBridge 157:e7ca05fa8600 747 */
AnnaBridge 157:e7ca05fa8600 748 __STATIC_INLINE void LL_USART_SetWakeUpMethod(USART_TypeDef *USARTx, uint32_t Method)
AnnaBridge 157:e7ca05fa8600 749 {
AnnaBridge 157:e7ca05fa8600 750 MODIFY_REG(USARTx->CR1, USART_CR1_WAKE, Method);
AnnaBridge 157:e7ca05fa8600 751 }
AnnaBridge 157:e7ca05fa8600 752
AnnaBridge 157:e7ca05fa8600 753 /**
AnnaBridge 157:e7ca05fa8600 754 * @brief Return Receiver Wake Up method from Mute mode
AnnaBridge 157:e7ca05fa8600 755 * @rmtoll CR1 WAKE LL_USART_GetWakeUpMethod
AnnaBridge 157:e7ca05fa8600 756 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 757 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 758 * @arg @ref LL_USART_WAKEUP_IDLELINE
AnnaBridge 157:e7ca05fa8600 759 * @arg @ref LL_USART_WAKEUP_ADDRESSMARK
AnnaBridge 157:e7ca05fa8600 760 */
AnnaBridge 157:e7ca05fa8600 761 __STATIC_INLINE uint32_t LL_USART_GetWakeUpMethod(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 762 {
AnnaBridge 157:e7ca05fa8600 763 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_WAKE));
AnnaBridge 157:e7ca05fa8600 764 }
AnnaBridge 157:e7ca05fa8600 765
AnnaBridge 157:e7ca05fa8600 766 /**
AnnaBridge 157:e7ca05fa8600 767 * @brief Set Word length (i.e. nb of data bits, excluding start and stop bits)
AnnaBridge 157:e7ca05fa8600 768 * @rmtoll CR1 M0 LL_USART_SetDataWidth\n
AnnaBridge 157:e7ca05fa8600 769 * CR1 M1 LL_USART_SetDataWidth
AnnaBridge 157:e7ca05fa8600 770 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 771 * @param DataWidth This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 772 * @arg @ref LL_USART_DATAWIDTH_7B
AnnaBridge 157:e7ca05fa8600 773 * @arg @ref LL_USART_DATAWIDTH_8B
AnnaBridge 157:e7ca05fa8600 774 * @arg @ref LL_USART_DATAWIDTH_9B
AnnaBridge 157:e7ca05fa8600 775 * @retval None
AnnaBridge 157:e7ca05fa8600 776 */
AnnaBridge 157:e7ca05fa8600 777 __STATIC_INLINE void LL_USART_SetDataWidth(USART_TypeDef *USARTx, uint32_t DataWidth)
AnnaBridge 157:e7ca05fa8600 778 {
AnnaBridge 157:e7ca05fa8600 779 MODIFY_REG(USARTx->CR1, USART_CR1_M, DataWidth);
AnnaBridge 157:e7ca05fa8600 780 }
AnnaBridge 157:e7ca05fa8600 781
AnnaBridge 157:e7ca05fa8600 782 /**
AnnaBridge 157:e7ca05fa8600 783 * @brief Return Word length (i.e. nb of data bits, excluding start and stop bits)
AnnaBridge 157:e7ca05fa8600 784 * @rmtoll CR1 M0 LL_USART_GetDataWidth\n
AnnaBridge 157:e7ca05fa8600 785 * CR1 M1 LL_USART_GetDataWidth
AnnaBridge 157:e7ca05fa8600 786 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 787 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 788 * @arg @ref LL_USART_DATAWIDTH_7B
AnnaBridge 157:e7ca05fa8600 789 * @arg @ref LL_USART_DATAWIDTH_8B
AnnaBridge 157:e7ca05fa8600 790 * @arg @ref LL_USART_DATAWIDTH_9B
AnnaBridge 157:e7ca05fa8600 791 */
AnnaBridge 157:e7ca05fa8600 792 __STATIC_INLINE uint32_t LL_USART_GetDataWidth(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 793 {
AnnaBridge 157:e7ca05fa8600 794 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_M));
AnnaBridge 157:e7ca05fa8600 795 }
AnnaBridge 157:e7ca05fa8600 796
AnnaBridge 157:e7ca05fa8600 797 /**
AnnaBridge 157:e7ca05fa8600 798 * @brief Allow switch between Mute Mode and Active mode
AnnaBridge 157:e7ca05fa8600 799 * @rmtoll CR1 MME LL_USART_EnableMuteMode
AnnaBridge 157:e7ca05fa8600 800 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 801 * @retval None
AnnaBridge 157:e7ca05fa8600 802 */
AnnaBridge 157:e7ca05fa8600 803 __STATIC_INLINE void LL_USART_EnableMuteMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 804 {
AnnaBridge 157:e7ca05fa8600 805 SET_BIT(USARTx->CR1, USART_CR1_MME);
AnnaBridge 157:e7ca05fa8600 806 }
AnnaBridge 157:e7ca05fa8600 807
AnnaBridge 157:e7ca05fa8600 808 /**
AnnaBridge 157:e7ca05fa8600 809 * @brief Prevent Mute Mode use. Set Receiver in active mode permanently.
AnnaBridge 157:e7ca05fa8600 810 * @rmtoll CR1 MME LL_USART_DisableMuteMode
AnnaBridge 157:e7ca05fa8600 811 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 812 * @retval None
AnnaBridge 157:e7ca05fa8600 813 */
AnnaBridge 157:e7ca05fa8600 814 __STATIC_INLINE void LL_USART_DisableMuteMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 815 {
AnnaBridge 157:e7ca05fa8600 816 CLEAR_BIT(USARTx->CR1, USART_CR1_MME);
AnnaBridge 157:e7ca05fa8600 817 }
AnnaBridge 157:e7ca05fa8600 818
AnnaBridge 157:e7ca05fa8600 819 /**
AnnaBridge 157:e7ca05fa8600 820 * @brief Indicate if switch between Mute Mode and Active mode is allowed
AnnaBridge 157:e7ca05fa8600 821 * @rmtoll CR1 MME LL_USART_IsEnabledMuteMode
AnnaBridge 157:e7ca05fa8600 822 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 823 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 824 */
AnnaBridge 157:e7ca05fa8600 825 __STATIC_INLINE uint32_t LL_USART_IsEnabledMuteMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 826 {
AnnaBridge 157:e7ca05fa8600 827 return (READ_BIT(USARTx->CR1, USART_CR1_MME) == (USART_CR1_MME));
AnnaBridge 157:e7ca05fa8600 828 }
AnnaBridge 157:e7ca05fa8600 829
AnnaBridge 157:e7ca05fa8600 830 /**
AnnaBridge 157:e7ca05fa8600 831 * @brief Set Oversampling to 8-bit or 16-bit mode
AnnaBridge 157:e7ca05fa8600 832 * @rmtoll CR1 OVER8 LL_USART_SetOverSampling
AnnaBridge 157:e7ca05fa8600 833 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 834 * @param OverSampling This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 835 * @arg @ref LL_USART_OVERSAMPLING_16
AnnaBridge 157:e7ca05fa8600 836 * @arg @ref LL_USART_OVERSAMPLING_8
AnnaBridge 157:e7ca05fa8600 837 * @retval None
AnnaBridge 157:e7ca05fa8600 838 */
AnnaBridge 157:e7ca05fa8600 839 __STATIC_INLINE void LL_USART_SetOverSampling(USART_TypeDef *USARTx, uint32_t OverSampling)
AnnaBridge 157:e7ca05fa8600 840 {
AnnaBridge 157:e7ca05fa8600 841 MODIFY_REG(USARTx->CR1, USART_CR1_OVER8, OverSampling);
AnnaBridge 157:e7ca05fa8600 842 }
AnnaBridge 157:e7ca05fa8600 843
AnnaBridge 157:e7ca05fa8600 844 /**
AnnaBridge 157:e7ca05fa8600 845 * @brief Return Oversampling mode
AnnaBridge 157:e7ca05fa8600 846 * @rmtoll CR1 OVER8 LL_USART_GetOverSampling
AnnaBridge 157:e7ca05fa8600 847 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 848 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 849 * @arg @ref LL_USART_OVERSAMPLING_16
AnnaBridge 157:e7ca05fa8600 850 * @arg @ref LL_USART_OVERSAMPLING_8
AnnaBridge 157:e7ca05fa8600 851 */
AnnaBridge 157:e7ca05fa8600 852 __STATIC_INLINE uint32_t LL_USART_GetOverSampling(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 853 {
AnnaBridge 157:e7ca05fa8600 854 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_OVER8));
AnnaBridge 157:e7ca05fa8600 855 }
AnnaBridge 157:e7ca05fa8600 856
AnnaBridge 157:e7ca05fa8600 857 /**
AnnaBridge 157:e7ca05fa8600 858 * @brief Configure if Clock pulse of the last data bit is output to the SCLK pin or not
AnnaBridge 157:e7ca05fa8600 859 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 860 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 861 * @rmtoll CR2 LBCL LL_USART_SetLastClkPulseOutput
AnnaBridge 157:e7ca05fa8600 862 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 863 * @param LastBitClockPulse This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 864 * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT
AnnaBridge 157:e7ca05fa8600 865 * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT
AnnaBridge 157:e7ca05fa8600 866 * @retval None
AnnaBridge 157:e7ca05fa8600 867 */
AnnaBridge 157:e7ca05fa8600 868 __STATIC_INLINE void LL_USART_SetLastClkPulseOutput(USART_TypeDef *USARTx, uint32_t LastBitClockPulse)
AnnaBridge 157:e7ca05fa8600 869 {
AnnaBridge 157:e7ca05fa8600 870 MODIFY_REG(USARTx->CR2, USART_CR2_LBCL, LastBitClockPulse);
AnnaBridge 157:e7ca05fa8600 871 }
AnnaBridge 157:e7ca05fa8600 872
AnnaBridge 157:e7ca05fa8600 873 /**
AnnaBridge 157:e7ca05fa8600 874 * @brief Retrieve Clock pulse of the last data bit output configuration
AnnaBridge 157:e7ca05fa8600 875 * (Last bit Clock pulse output to the SCLK pin or not)
AnnaBridge 157:e7ca05fa8600 876 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 877 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 878 * @rmtoll CR2 LBCL LL_USART_GetLastClkPulseOutput
AnnaBridge 157:e7ca05fa8600 879 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 880 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 881 * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT
AnnaBridge 157:e7ca05fa8600 882 * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT
AnnaBridge 157:e7ca05fa8600 883 */
AnnaBridge 157:e7ca05fa8600 884 __STATIC_INLINE uint32_t LL_USART_GetLastClkPulseOutput(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 885 {
AnnaBridge 157:e7ca05fa8600 886 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBCL));
AnnaBridge 157:e7ca05fa8600 887 }
AnnaBridge 157:e7ca05fa8600 888
AnnaBridge 157:e7ca05fa8600 889 /**
AnnaBridge 157:e7ca05fa8600 890 * @brief Select the phase of the clock output on the SCLK pin in synchronous mode
AnnaBridge 157:e7ca05fa8600 891 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 892 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 893 * @rmtoll CR2 CPHA LL_USART_SetClockPhase
AnnaBridge 157:e7ca05fa8600 894 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 895 * @param ClockPhase This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 896 * @arg @ref LL_USART_PHASE_1EDGE
AnnaBridge 157:e7ca05fa8600 897 * @arg @ref LL_USART_PHASE_2EDGE
AnnaBridge 157:e7ca05fa8600 898 * @retval None
AnnaBridge 157:e7ca05fa8600 899 */
AnnaBridge 157:e7ca05fa8600 900 __STATIC_INLINE void LL_USART_SetClockPhase(USART_TypeDef *USARTx, uint32_t ClockPhase)
AnnaBridge 157:e7ca05fa8600 901 {
AnnaBridge 157:e7ca05fa8600 902 MODIFY_REG(USARTx->CR2, USART_CR2_CPHA, ClockPhase);
AnnaBridge 157:e7ca05fa8600 903 }
AnnaBridge 157:e7ca05fa8600 904
AnnaBridge 157:e7ca05fa8600 905 /**
AnnaBridge 157:e7ca05fa8600 906 * @brief Return phase of the clock output on the SCLK pin in synchronous mode
AnnaBridge 157:e7ca05fa8600 907 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 908 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 909 * @rmtoll CR2 CPHA LL_USART_GetClockPhase
AnnaBridge 157:e7ca05fa8600 910 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 911 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 912 * @arg @ref LL_USART_PHASE_1EDGE
AnnaBridge 157:e7ca05fa8600 913 * @arg @ref LL_USART_PHASE_2EDGE
AnnaBridge 157:e7ca05fa8600 914 */
AnnaBridge 157:e7ca05fa8600 915 __STATIC_INLINE uint32_t LL_USART_GetClockPhase(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 916 {
AnnaBridge 157:e7ca05fa8600 917 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPHA));
AnnaBridge 157:e7ca05fa8600 918 }
AnnaBridge 157:e7ca05fa8600 919
AnnaBridge 157:e7ca05fa8600 920 /**
AnnaBridge 157:e7ca05fa8600 921 * @brief Select the polarity of the clock output on the SCLK pin in synchronous mode
AnnaBridge 157:e7ca05fa8600 922 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 923 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 924 * @rmtoll CR2 CPOL LL_USART_SetClockPolarity
AnnaBridge 157:e7ca05fa8600 925 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 926 * @param ClockPolarity This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 927 * @arg @ref LL_USART_POLARITY_LOW
AnnaBridge 157:e7ca05fa8600 928 * @arg @ref LL_USART_POLARITY_HIGH
AnnaBridge 157:e7ca05fa8600 929 * @retval None
AnnaBridge 157:e7ca05fa8600 930 */
AnnaBridge 157:e7ca05fa8600 931 __STATIC_INLINE void LL_USART_SetClockPolarity(USART_TypeDef *USARTx, uint32_t ClockPolarity)
AnnaBridge 157:e7ca05fa8600 932 {
AnnaBridge 157:e7ca05fa8600 933 MODIFY_REG(USARTx->CR2, USART_CR2_CPOL, ClockPolarity);
AnnaBridge 157:e7ca05fa8600 934 }
AnnaBridge 157:e7ca05fa8600 935
AnnaBridge 157:e7ca05fa8600 936 /**
AnnaBridge 157:e7ca05fa8600 937 * @brief Return polarity of the clock output on the SCLK pin in synchronous mode
AnnaBridge 157:e7ca05fa8600 938 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 939 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 940 * @rmtoll CR2 CPOL LL_USART_GetClockPolarity
AnnaBridge 157:e7ca05fa8600 941 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 942 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 943 * @arg @ref LL_USART_POLARITY_LOW
AnnaBridge 157:e7ca05fa8600 944 * @arg @ref LL_USART_POLARITY_HIGH
AnnaBridge 157:e7ca05fa8600 945 */
AnnaBridge 157:e7ca05fa8600 946 __STATIC_INLINE uint32_t LL_USART_GetClockPolarity(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 947 {
AnnaBridge 157:e7ca05fa8600 948 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPOL));
AnnaBridge 157:e7ca05fa8600 949 }
AnnaBridge 157:e7ca05fa8600 950
AnnaBridge 157:e7ca05fa8600 951 /**
AnnaBridge 157:e7ca05fa8600 952 * @brief Configure Clock signal format (Phase Polarity and choice about output of last bit clock pulse)
AnnaBridge 157:e7ca05fa8600 953 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 954 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 955 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 956 * - Clock Phase configuration using @ref LL_USART_SetClockPhase() function
AnnaBridge 157:e7ca05fa8600 957 * - Clock Polarity configuration using @ref LL_USART_SetClockPolarity() function
AnnaBridge 157:e7ca05fa8600 958 * - Output of Last bit Clock pulse configuration using @ref LL_USART_SetLastClkPulseOutput() function
AnnaBridge 157:e7ca05fa8600 959 * @rmtoll CR2 CPHA LL_USART_ConfigClock\n
AnnaBridge 157:e7ca05fa8600 960 * CR2 CPOL LL_USART_ConfigClock\n
AnnaBridge 157:e7ca05fa8600 961 * CR2 LBCL LL_USART_ConfigClock
AnnaBridge 157:e7ca05fa8600 962 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 963 * @param Phase This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 964 * @arg @ref LL_USART_PHASE_1EDGE
AnnaBridge 157:e7ca05fa8600 965 * @arg @ref LL_USART_PHASE_2EDGE
AnnaBridge 157:e7ca05fa8600 966 * @param Polarity This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 967 * @arg @ref LL_USART_POLARITY_LOW
AnnaBridge 157:e7ca05fa8600 968 * @arg @ref LL_USART_POLARITY_HIGH
AnnaBridge 157:e7ca05fa8600 969 * @param LBCPOutput This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 970 * @arg @ref LL_USART_LASTCLKPULSE_NO_OUTPUT
AnnaBridge 157:e7ca05fa8600 971 * @arg @ref LL_USART_LASTCLKPULSE_OUTPUT
AnnaBridge 157:e7ca05fa8600 972 * @retval None
AnnaBridge 157:e7ca05fa8600 973 */
AnnaBridge 157:e7ca05fa8600 974 __STATIC_INLINE void LL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput)
AnnaBridge 157:e7ca05fa8600 975 {
AnnaBridge 157:e7ca05fa8600 976 MODIFY_REG(USARTx->CR2, USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_LBCL, Phase | Polarity | LBCPOutput);
AnnaBridge 157:e7ca05fa8600 977 }
AnnaBridge 157:e7ca05fa8600 978
AnnaBridge 157:e7ca05fa8600 979 /**
AnnaBridge 157:e7ca05fa8600 980 * @brief Enable Clock output on SCLK pin
AnnaBridge 157:e7ca05fa8600 981 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 982 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 983 * @rmtoll CR2 CLKEN LL_USART_EnableSCLKOutput
AnnaBridge 157:e7ca05fa8600 984 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 985 * @retval None
AnnaBridge 157:e7ca05fa8600 986 */
AnnaBridge 157:e7ca05fa8600 987 __STATIC_INLINE void LL_USART_EnableSCLKOutput(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 988 {
AnnaBridge 157:e7ca05fa8600 989 SET_BIT(USARTx->CR2, USART_CR2_CLKEN);
AnnaBridge 157:e7ca05fa8600 990 }
AnnaBridge 157:e7ca05fa8600 991
AnnaBridge 157:e7ca05fa8600 992 /**
AnnaBridge 157:e7ca05fa8600 993 * @brief Disable Clock output on SCLK pin
AnnaBridge 157:e7ca05fa8600 994 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 995 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 996 * @rmtoll CR2 CLKEN LL_USART_DisableSCLKOutput
AnnaBridge 157:e7ca05fa8600 997 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 998 * @retval None
AnnaBridge 157:e7ca05fa8600 999 */
AnnaBridge 157:e7ca05fa8600 1000 __STATIC_INLINE void LL_USART_DisableSCLKOutput(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1001 {
AnnaBridge 157:e7ca05fa8600 1002 CLEAR_BIT(USARTx->CR2, USART_CR2_CLKEN);
AnnaBridge 157:e7ca05fa8600 1003 }
AnnaBridge 157:e7ca05fa8600 1004
AnnaBridge 157:e7ca05fa8600 1005 /**
AnnaBridge 157:e7ca05fa8600 1006 * @brief Indicate if Clock output on SCLK pin is enabled
AnnaBridge 157:e7ca05fa8600 1007 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1008 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1009 * @rmtoll CR2 CLKEN LL_USART_IsEnabledSCLKOutput
AnnaBridge 157:e7ca05fa8600 1010 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1011 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1012 */
AnnaBridge 157:e7ca05fa8600 1013 __STATIC_INLINE uint32_t LL_USART_IsEnabledSCLKOutput(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1014 {
AnnaBridge 157:e7ca05fa8600 1015 return (READ_BIT(USARTx->CR2, USART_CR2_CLKEN) == (USART_CR2_CLKEN));
AnnaBridge 157:e7ca05fa8600 1016 }
AnnaBridge 157:e7ca05fa8600 1017
AnnaBridge 157:e7ca05fa8600 1018 /**
AnnaBridge 157:e7ca05fa8600 1019 * @brief Set the length of the stop bits
AnnaBridge 157:e7ca05fa8600 1020 * @rmtoll CR2 STOP LL_USART_SetStopBitsLength
AnnaBridge 157:e7ca05fa8600 1021 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1022 * @param StopBits This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1023 * @arg @ref LL_USART_STOPBITS_0_5
AnnaBridge 157:e7ca05fa8600 1024 * @arg @ref LL_USART_STOPBITS_1
AnnaBridge 157:e7ca05fa8600 1025 * @arg @ref LL_USART_STOPBITS_1_5
AnnaBridge 157:e7ca05fa8600 1026 * @arg @ref LL_USART_STOPBITS_2
AnnaBridge 157:e7ca05fa8600 1027 * @retval None
AnnaBridge 157:e7ca05fa8600 1028 */
AnnaBridge 157:e7ca05fa8600 1029 __STATIC_INLINE void LL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits)
AnnaBridge 157:e7ca05fa8600 1030 {
AnnaBridge 157:e7ca05fa8600 1031 MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits);
AnnaBridge 157:e7ca05fa8600 1032 }
AnnaBridge 157:e7ca05fa8600 1033
AnnaBridge 157:e7ca05fa8600 1034 /**
AnnaBridge 157:e7ca05fa8600 1035 * @brief Retrieve the length of the stop bits
AnnaBridge 157:e7ca05fa8600 1036 * @rmtoll CR2 STOP LL_USART_GetStopBitsLength
AnnaBridge 157:e7ca05fa8600 1037 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1038 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1039 * @arg @ref LL_USART_STOPBITS_0_5
AnnaBridge 157:e7ca05fa8600 1040 * @arg @ref LL_USART_STOPBITS_1
AnnaBridge 157:e7ca05fa8600 1041 * @arg @ref LL_USART_STOPBITS_1_5
AnnaBridge 157:e7ca05fa8600 1042 * @arg @ref LL_USART_STOPBITS_2
AnnaBridge 157:e7ca05fa8600 1043 */
AnnaBridge 157:e7ca05fa8600 1044 __STATIC_INLINE uint32_t LL_USART_GetStopBitsLength(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1045 {
AnnaBridge 157:e7ca05fa8600 1046 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_STOP));
AnnaBridge 157:e7ca05fa8600 1047 }
AnnaBridge 157:e7ca05fa8600 1048
AnnaBridge 157:e7ca05fa8600 1049 /**
AnnaBridge 157:e7ca05fa8600 1050 * @brief Configure Character frame format (Datawidth, Parity control, Stop Bits)
AnnaBridge 157:e7ca05fa8600 1051 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 1052 * - Data Width configuration using @ref LL_USART_SetDataWidth() function
AnnaBridge 157:e7ca05fa8600 1053 * - Parity Control and mode configuration using @ref LL_USART_SetParity() function
AnnaBridge 157:e7ca05fa8600 1054 * - Stop bits configuration using @ref LL_USART_SetStopBitsLength() function
AnnaBridge 157:e7ca05fa8600 1055 * @rmtoll CR1 PS LL_USART_ConfigCharacter\n
AnnaBridge 157:e7ca05fa8600 1056 * CR1 PCE LL_USART_ConfigCharacter\n
AnnaBridge 157:e7ca05fa8600 1057 * CR1 M0 LL_USART_ConfigCharacter\n
AnnaBridge 157:e7ca05fa8600 1058 * CR1 M1 LL_USART_ConfigCharacter\n
AnnaBridge 157:e7ca05fa8600 1059 * CR2 STOP LL_USART_ConfigCharacter
AnnaBridge 157:e7ca05fa8600 1060 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1061 * @param DataWidth This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1062 * @arg @ref LL_USART_DATAWIDTH_7B
AnnaBridge 157:e7ca05fa8600 1063 * @arg @ref LL_USART_DATAWIDTH_8B
AnnaBridge 157:e7ca05fa8600 1064 * @arg @ref LL_USART_DATAWIDTH_9B
AnnaBridge 157:e7ca05fa8600 1065 * @param Parity This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1066 * @arg @ref LL_USART_PARITY_NONE
AnnaBridge 157:e7ca05fa8600 1067 * @arg @ref LL_USART_PARITY_EVEN
AnnaBridge 157:e7ca05fa8600 1068 * @arg @ref LL_USART_PARITY_ODD
AnnaBridge 157:e7ca05fa8600 1069 * @param StopBits This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1070 * @arg @ref LL_USART_STOPBITS_0_5
AnnaBridge 157:e7ca05fa8600 1071 * @arg @ref LL_USART_STOPBITS_1
AnnaBridge 157:e7ca05fa8600 1072 * @arg @ref LL_USART_STOPBITS_1_5
AnnaBridge 157:e7ca05fa8600 1073 * @arg @ref LL_USART_STOPBITS_2
AnnaBridge 157:e7ca05fa8600 1074 * @retval None
AnnaBridge 157:e7ca05fa8600 1075 */
AnnaBridge 157:e7ca05fa8600 1076 __STATIC_INLINE void LL_USART_ConfigCharacter(USART_TypeDef *USARTx, uint32_t DataWidth, uint32_t Parity,
AnnaBridge 157:e7ca05fa8600 1077 uint32_t StopBits)
AnnaBridge 157:e7ca05fa8600 1078 {
AnnaBridge 157:e7ca05fa8600 1079 MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE | USART_CR1_M, Parity | DataWidth);
AnnaBridge 157:e7ca05fa8600 1080 MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits);
AnnaBridge 157:e7ca05fa8600 1081 }
AnnaBridge 157:e7ca05fa8600 1082
AnnaBridge 157:e7ca05fa8600 1083 /**
AnnaBridge 157:e7ca05fa8600 1084 * @brief Configure TX/RX pins swapping setting.
AnnaBridge 157:e7ca05fa8600 1085 * @rmtoll CR2 SWAP LL_USART_SetTXRXSwap
AnnaBridge 157:e7ca05fa8600 1086 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1087 * @param SwapConfig This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1088 * @arg @ref LL_USART_TXRX_STANDARD
AnnaBridge 157:e7ca05fa8600 1089 * @arg @ref LL_USART_TXRX_SWAPPED
AnnaBridge 157:e7ca05fa8600 1090 * @retval None
AnnaBridge 157:e7ca05fa8600 1091 */
AnnaBridge 157:e7ca05fa8600 1092 __STATIC_INLINE void LL_USART_SetTXRXSwap(USART_TypeDef *USARTx, uint32_t SwapConfig)
AnnaBridge 157:e7ca05fa8600 1093 {
AnnaBridge 157:e7ca05fa8600 1094 MODIFY_REG(USARTx->CR2, USART_CR2_SWAP, SwapConfig);
AnnaBridge 157:e7ca05fa8600 1095 }
AnnaBridge 157:e7ca05fa8600 1096
AnnaBridge 157:e7ca05fa8600 1097 /**
AnnaBridge 157:e7ca05fa8600 1098 * @brief Retrieve TX/RX pins swapping configuration.
AnnaBridge 157:e7ca05fa8600 1099 * @rmtoll CR2 SWAP LL_USART_GetTXRXSwap
AnnaBridge 157:e7ca05fa8600 1100 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1101 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1102 * @arg @ref LL_USART_TXRX_STANDARD
AnnaBridge 157:e7ca05fa8600 1103 * @arg @ref LL_USART_TXRX_SWAPPED
AnnaBridge 157:e7ca05fa8600 1104 */
AnnaBridge 157:e7ca05fa8600 1105 __STATIC_INLINE uint32_t LL_USART_GetTXRXSwap(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1106 {
AnnaBridge 157:e7ca05fa8600 1107 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_SWAP));
AnnaBridge 157:e7ca05fa8600 1108 }
AnnaBridge 157:e7ca05fa8600 1109
AnnaBridge 157:e7ca05fa8600 1110 /**
AnnaBridge 157:e7ca05fa8600 1111 * @brief Configure RX pin active level logic
AnnaBridge 157:e7ca05fa8600 1112 * @rmtoll CR2 RXINV LL_USART_SetRXPinLevel
AnnaBridge 157:e7ca05fa8600 1113 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1114 * @param PinInvMethod This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1115 * @arg @ref LL_USART_RXPIN_LEVEL_STANDARD
AnnaBridge 157:e7ca05fa8600 1116 * @arg @ref LL_USART_RXPIN_LEVEL_INVERTED
AnnaBridge 157:e7ca05fa8600 1117 * @retval None
AnnaBridge 157:e7ca05fa8600 1118 */
AnnaBridge 157:e7ca05fa8600 1119 __STATIC_INLINE void LL_USART_SetRXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod)
AnnaBridge 157:e7ca05fa8600 1120 {
AnnaBridge 157:e7ca05fa8600 1121 MODIFY_REG(USARTx->CR2, USART_CR2_RXINV, PinInvMethod);
AnnaBridge 157:e7ca05fa8600 1122 }
AnnaBridge 157:e7ca05fa8600 1123
AnnaBridge 157:e7ca05fa8600 1124 /**
AnnaBridge 157:e7ca05fa8600 1125 * @brief Retrieve RX pin active level logic configuration
AnnaBridge 157:e7ca05fa8600 1126 * @rmtoll CR2 RXINV LL_USART_GetRXPinLevel
AnnaBridge 157:e7ca05fa8600 1127 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1128 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1129 * @arg @ref LL_USART_RXPIN_LEVEL_STANDARD
AnnaBridge 157:e7ca05fa8600 1130 * @arg @ref LL_USART_RXPIN_LEVEL_INVERTED
AnnaBridge 157:e7ca05fa8600 1131 */
AnnaBridge 157:e7ca05fa8600 1132 __STATIC_INLINE uint32_t LL_USART_GetRXPinLevel(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1133 {
AnnaBridge 157:e7ca05fa8600 1134 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_RXINV));
AnnaBridge 157:e7ca05fa8600 1135 }
AnnaBridge 157:e7ca05fa8600 1136
AnnaBridge 157:e7ca05fa8600 1137 /**
AnnaBridge 157:e7ca05fa8600 1138 * @brief Configure TX pin active level logic
AnnaBridge 157:e7ca05fa8600 1139 * @rmtoll CR2 TXINV LL_USART_SetTXPinLevel
AnnaBridge 157:e7ca05fa8600 1140 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1141 * @param PinInvMethod This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1142 * @arg @ref LL_USART_TXPIN_LEVEL_STANDARD
AnnaBridge 157:e7ca05fa8600 1143 * @arg @ref LL_USART_TXPIN_LEVEL_INVERTED
AnnaBridge 157:e7ca05fa8600 1144 * @retval None
AnnaBridge 157:e7ca05fa8600 1145 */
AnnaBridge 157:e7ca05fa8600 1146 __STATIC_INLINE void LL_USART_SetTXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod)
AnnaBridge 157:e7ca05fa8600 1147 {
AnnaBridge 157:e7ca05fa8600 1148 MODIFY_REG(USARTx->CR2, USART_CR2_TXINV, PinInvMethod);
AnnaBridge 157:e7ca05fa8600 1149 }
AnnaBridge 157:e7ca05fa8600 1150
AnnaBridge 157:e7ca05fa8600 1151 /**
AnnaBridge 157:e7ca05fa8600 1152 * @brief Retrieve TX pin active level logic configuration
AnnaBridge 157:e7ca05fa8600 1153 * @rmtoll CR2 TXINV LL_USART_GetTXPinLevel
AnnaBridge 157:e7ca05fa8600 1154 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1155 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1156 * @arg @ref LL_USART_TXPIN_LEVEL_STANDARD
AnnaBridge 157:e7ca05fa8600 1157 * @arg @ref LL_USART_TXPIN_LEVEL_INVERTED
AnnaBridge 157:e7ca05fa8600 1158 */
AnnaBridge 157:e7ca05fa8600 1159 __STATIC_INLINE uint32_t LL_USART_GetTXPinLevel(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1160 {
AnnaBridge 157:e7ca05fa8600 1161 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_TXINV));
AnnaBridge 157:e7ca05fa8600 1162 }
AnnaBridge 157:e7ca05fa8600 1163
AnnaBridge 157:e7ca05fa8600 1164 /**
AnnaBridge 157:e7ca05fa8600 1165 * @brief Configure Binary data logic.
AnnaBridge 157:e7ca05fa8600 1166 * @note Allow to define how Logical data from the data register are send/received :
AnnaBridge 157:e7ca05fa8600 1167 * either in positive/direct logic (1=H, 0=L) or in negative/inverse logic (1=L, 0=H)
AnnaBridge 157:e7ca05fa8600 1168 * @rmtoll CR2 DATAINV LL_USART_SetBinaryDataLogic
AnnaBridge 157:e7ca05fa8600 1169 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1170 * @param DataLogic This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1171 * @arg @ref LL_USART_BINARY_LOGIC_POSITIVE
AnnaBridge 157:e7ca05fa8600 1172 * @arg @ref LL_USART_BINARY_LOGIC_NEGATIVE
AnnaBridge 157:e7ca05fa8600 1173 * @retval None
AnnaBridge 157:e7ca05fa8600 1174 */
AnnaBridge 157:e7ca05fa8600 1175 __STATIC_INLINE void LL_USART_SetBinaryDataLogic(USART_TypeDef *USARTx, uint32_t DataLogic)
AnnaBridge 157:e7ca05fa8600 1176 {
AnnaBridge 157:e7ca05fa8600 1177 MODIFY_REG(USARTx->CR2, USART_CR2_DATAINV, DataLogic);
AnnaBridge 157:e7ca05fa8600 1178 }
AnnaBridge 157:e7ca05fa8600 1179
AnnaBridge 157:e7ca05fa8600 1180 /**
AnnaBridge 157:e7ca05fa8600 1181 * @brief Retrieve Binary data configuration
AnnaBridge 157:e7ca05fa8600 1182 * @rmtoll CR2 DATAINV LL_USART_GetBinaryDataLogic
AnnaBridge 157:e7ca05fa8600 1183 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1184 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1185 * @arg @ref LL_USART_BINARY_LOGIC_POSITIVE
AnnaBridge 157:e7ca05fa8600 1186 * @arg @ref LL_USART_BINARY_LOGIC_NEGATIVE
AnnaBridge 157:e7ca05fa8600 1187 */
AnnaBridge 157:e7ca05fa8600 1188 __STATIC_INLINE uint32_t LL_USART_GetBinaryDataLogic(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1189 {
AnnaBridge 157:e7ca05fa8600 1190 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_DATAINV));
AnnaBridge 157:e7ca05fa8600 1191 }
AnnaBridge 157:e7ca05fa8600 1192
AnnaBridge 157:e7ca05fa8600 1193 /**
AnnaBridge 157:e7ca05fa8600 1194 * @brief Configure transfer bit order (either Less or Most Significant Bit First)
AnnaBridge 157:e7ca05fa8600 1195 * @note MSB First means data is transmitted/received with the MSB first, following the start bit.
AnnaBridge 157:e7ca05fa8600 1196 * LSB First means data is transmitted/received with data bit 0 first, following the start bit.
AnnaBridge 157:e7ca05fa8600 1197 * @rmtoll CR2 MSBFIRST LL_USART_SetTransferBitOrder
AnnaBridge 157:e7ca05fa8600 1198 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1199 * @param BitOrder This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1200 * @arg @ref LL_USART_BITORDER_LSBFIRST
AnnaBridge 157:e7ca05fa8600 1201 * @arg @ref LL_USART_BITORDER_MSBFIRST
AnnaBridge 157:e7ca05fa8600 1202 * @retval None
AnnaBridge 157:e7ca05fa8600 1203 */
AnnaBridge 157:e7ca05fa8600 1204 __STATIC_INLINE void LL_USART_SetTransferBitOrder(USART_TypeDef *USARTx, uint32_t BitOrder)
AnnaBridge 157:e7ca05fa8600 1205 {
AnnaBridge 157:e7ca05fa8600 1206 MODIFY_REG(USARTx->CR2, USART_CR2_MSBFIRST, BitOrder);
AnnaBridge 157:e7ca05fa8600 1207 }
AnnaBridge 157:e7ca05fa8600 1208
AnnaBridge 157:e7ca05fa8600 1209 /**
AnnaBridge 157:e7ca05fa8600 1210 * @brief Return transfer bit order (either Less or Most Significant Bit First)
AnnaBridge 157:e7ca05fa8600 1211 * @note MSB First means data is transmitted/received with the MSB first, following the start bit.
AnnaBridge 157:e7ca05fa8600 1212 * LSB First means data is transmitted/received with data bit 0 first, following the start bit.
AnnaBridge 157:e7ca05fa8600 1213 * @rmtoll CR2 MSBFIRST LL_USART_GetTransferBitOrder
AnnaBridge 157:e7ca05fa8600 1214 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1215 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1216 * @arg @ref LL_USART_BITORDER_LSBFIRST
AnnaBridge 157:e7ca05fa8600 1217 * @arg @ref LL_USART_BITORDER_MSBFIRST
AnnaBridge 157:e7ca05fa8600 1218 */
AnnaBridge 157:e7ca05fa8600 1219 __STATIC_INLINE uint32_t LL_USART_GetTransferBitOrder(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1220 {
AnnaBridge 157:e7ca05fa8600 1221 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_MSBFIRST));
AnnaBridge 157:e7ca05fa8600 1222 }
AnnaBridge 157:e7ca05fa8600 1223
AnnaBridge 157:e7ca05fa8600 1224 /**
AnnaBridge 157:e7ca05fa8600 1225 * @brief Enable Auto Baud-Rate Detection
AnnaBridge 157:e7ca05fa8600 1226 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1227 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1228 * @rmtoll CR2 ABREN LL_USART_EnableAutoBaudRate
AnnaBridge 157:e7ca05fa8600 1229 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1230 * @retval None
AnnaBridge 157:e7ca05fa8600 1231 */
AnnaBridge 157:e7ca05fa8600 1232 __STATIC_INLINE void LL_USART_EnableAutoBaudRate(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1233 {
AnnaBridge 157:e7ca05fa8600 1234 SET_BIT(USARTx->CR2, USART_CR2_ABREN);
AnnaBridge 157:e7ca05fa8600 1235 }
AnnaBridge 157:e7ca05fa8600 1236
AnnaBridge 157:e7ca05fa8600 1237 /**
AnnaBridge 157:e7ca05fa8600 1238 * @brief Disable Auto Baud-Rate Detection
AnnaBridge 157:e7ca05fa8600 1239 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1240 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1241 * @rmtoll CR2 ABREN LL_USART_DisableAutoBaudRate
AnnaBridge 157:e7ca05fa8600 1242 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1243 * @retval None
AnnaBridge 157:e7ca05fa8600 1244 */
AnnaBridge 157:e7ca05fa8600 1245 __STATIC_INLINE void LL_USART_DisableAutoBaudRate(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1246 {
AnnaBridge 157:e7ca05fa8600 1247 CLEAR_BIT(USARTx->CR2, USART_CR2_ABREN);
AnnaBridge 157:e7ca05fa8600 1248 }
AnnaBridge 157:e7ca05fa8600 1249
AnnaBridge 157:e7ca05fa8600 1250 /**
AnnaBridge 157:e7ca05fa8600 1251 * @brief Indicate if Auto Baud-Rate Detection mechanism is enabled
AnnaBridge 157:e7ca05fa8600 1252 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1253 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1254 * @rmtoll CR2 ABREN LL_USART_IsEnabledAutoBaud
AnnaBridge 157:e7ca05fa8600 1255 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1256 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1257 */
AnnaBridge 157:e7ca05fa8600 1258 __STATIC_INLINE uint32_t LL_USART_IsEnabledAutoBaud(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1259 {
AnnaBridge 157:e7ca05fa8600 1260 return (READ_BIT(USARTx->CR2, USART_CR2_ABREN) == (USART_CR2_ABREN));
AnnaBridge 157:e7ca05fa8600 1261 }
AnnaBridge 157:e7ca05fa8600 1262
AnnaBridge 157:e7ca05fa8600 1263 /**
AnnaBridge 157:e7ca05fa8600 1264 * @brief Set Auto Baud-Rate mode bits
AnnaBridge 157:e7ca05fa8600 1265 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1266 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1267 * @rmtoll CR2 ABRMODE LL_USART_SetAutoBaudRateMode
AnnaBridge 157:e7ca05fa8600 1268 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1269 * @param AutoBaudRateMode This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1270 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_STARTBIT
AnnaBridge 157:e7ca05fa8600 1271 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE
AnnaBridge 157:e7ca05fa8600 1272 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME
AnnaBridge 157:e7ca05fa8600 1273 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_55_FRAME
AnnaBridge 157:e7ca05fa8600 1274 * @retval None
AnnaBridge 157:e7ca05fa8600 1275 */
AnnaBridge 157:e7ca05fa8600 1276 __STATIC_INLINE void LL_USART_SetAutoBaudRateMode(USART_TypeDef *USARTx, uint32_t AutoBaudRateMode)
AnnaBridge 157:e7ca05fa8600 1277 {
AnnaBridge 157:e7ca05fa8600 1278 MODIFY_REG(USARTx->CR2, USART_CR2_ABRMODE, AutoBaudRateMode);
AnnaBridge 157:e7ca05fa8600 1279 }
AnnaBridge 157:e7ca05fa8600 1280
AnnaBridge 157:e7ca05fa8600 1281 /**
AnnaBridge 157:e7ca05fa8600 1282 * @brief Return Auto Baud-Rate mode
AnnaBridge 157:e7ca05fa8600 1283 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1284 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1285 * @rmtoll CR2 ABRMODE LL_USART_GetAutoBaudRateMode
AnnaBridge 157:e7ca05fa8600 1286 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1287 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1288 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_STARTBIT
AnnaBridge 157:e7ca05fa8600 1289 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE
AnnaBridge 157:e7ca05fa8600 1290 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME
AnnaBridge 157:e7ca05fa8600 1291 * @arg @ref LL_USART_AUTOBAUD_DETECT_ON_55_FRAME
AnnaBridge 157:e7ca05fa8600 1292 */
AnnaBridge 157:e7ca05fa8600 1293 __STATIC_INLINE uint32_t LL_USART_GetAutoBaudRateMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1294 {
AnnaBridge 157:e7ca05fa8600 1295 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ABRMODE));
AnnaBridge 157:e7ca05fa8600 1296 }
AnnaBridge 157:e7ca05fa8600 1297
AnnaBridge 157:e7ca05fa8600 1298 /**
AnnaBridge 157:e7ca05fa8600 1299 * @brief Enable Receiver Timeout
AnnaBridge 157:e7ca05fa8600 1300 * @rmtoll CR2 RTOEN LL_USART_EnableRxTimeout
AnnaBridge 157:e7ca05fa8600 1301 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1302 * @retval None
AnnaBridge 157:e7ca05fa8600 1303 */
AnnaBridge 157:e7ca05fa8600 1304 __STATIC_INLINE void LL_USART_EnableRxTimeout(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1305 {
AnnaBridge 157:e7ca05fa8600 1306 SET_BIT(USARTx->CR2, USART_CR2_RTOEN);
AnnaBridge 157:e7ca05fa8600 1307 }
AnnaBridge 157:e7ca05fa8600 1308
AnnaBridge 157:e7ca05fa8600 1309 /**
AnnaBridge 157:e7ca05fa8600 1310 * @brief Disable Receiver Timeout
AnnaBridge 157:e7ca05fa8600 1311 * @rmtoll CR2 RTOEN LL_USART_DisableRxTimeout
AnnaBridge 157:e7ca05fa8600 1312 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1313 * @retval None
AnnaBridge 157:e7ca05fa8600 1314 */
AnnaBridge 157:e7ca05fa8600 1315 __STATIC_INLINE void LL_USART_DisableRxTimeout(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1316 {
AnnaBridge 157:e7ca05fa8600 1317 CLEAR_BIT(USARTx->CR2, USART_CR2_RTOEN);
AnnaBridge 157:e7ca05fa8600 1318 }
AnnaBridge 157:e7ca05fa8600 1319
AnnaBridge 157:e7ca05fa8600 1320 /**
AnnaBridge 157:e7ca05fa8600 1321 * @brief Indicate if Receiver Timeout feature is enabled
AnnaBridge 157:e7ca05fa8600 1322 * @rmtoll CR2 RTOEN LL_USART_IsEnabledRxTimeout
AnnaBridge 157:e7ca05fa8600 1323 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1324 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1325 */
AnnaBridge 157:e7ca05fa8600 1326 __STATIC_INLINE uint32_t LL_USART_IsEnabledRxTimeout(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1327 {
AnnaBridge 157:e7ca05fa8600 1328 return (READ_BIT(USARTx->CR2, USART_CR2_RTOEN) == (USART_CR2_RTOEN));
AnnaBridge 157:e7ca05fa8600 1329 }
AnnaBridge 157:e7ca05fa8600 1330
AnnaBridge 157:e7ca05fa8600 1331 /**
AnnaBridge 157:e7ca05fa8600 1332 * @brief Set Address of the USART node.
AnnaBridge 157:e7ca05fa8600 1333 * @note This is used in multiprocessor communication during Mute mode or Stop mode,
AnnaBridge 157:e7ca05fa8600 1334 * for wake up with address mark detection.
AnnaBridge 157:e7ca05fa8600 1335 * @note 4bits address node is used when 4-bit Address Detection is selected in ADDM7.
AnnaBridge 157:e7ca05fa8600 1336 * (b7-b4 should be set to 0)
AnnaBridge 157:e7ca05fa8600 1337 * 8bits address node is used when 7-bit Address Detection is selected in ADDM7.
AnnaBridge 157:e7ca05fa8600 1338 * (This is used in multiprocessor communication during Mute mode or Stop mode,
AnnaBridge 157:e7ca05fa8600 1339 * for wake up with 7-bit address mark detection.
AnnaBridge 157:e7ca05fa8600 1340 * The MSB of the character sent by the transmitter should be equal to 1.
AnnaBridge 157:e7ca05fa8600 1341 * It may also be used for character detection during normal reception,
AnnaBridge 157:e7ca05fa8600 1342 * Mute mode inactive (for example, end of block detection in ModBus protocol).
AnnaBridge 157:e7ca05fa8600 1343 * In this case, the whole received character (8-bit) is compared to the ADD[7:0]
AnnaBridge 157:e7ca05fa8600 1344 * value and CMF flag is set on match)
AnnaBridge 157:e7ca05fa8600 1345 * @rmtoll CR2 ADD LL_USART_ConfigNodeAddress\n
AnnaBridge 157:e7ca05fa8600 1346 * CR2 ADDM7 LL_USART_ConfigNodeAddress
AnnaBridge 157:e7ca05fa8600 1347 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1348 * @param AddressLen This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1349 * @arg @ref LL_USART_ADDRESS_DETECT_4B
AnnaBridge 157:e7ca05fa8600 1350 * @arg @ref LL_USART_ADDRESS_DETECT_7B
AnnaBridge 157:e7ca05fa8600 1351 * @param NodeAddress 4 or 7 bit Address of the USART node.
AnnaBridge 157:e7ca05fa8600 1352 * @retval None
AnnaBridge 157:e7ca05fa8600 1353 */
AnnaBridge 157:e7ca05fa8600 1354 __STATIC_INLINE void LL_USART_ConfigNodeAddress(USART_TypeDef *USARTx, uint32_t AddressLen, uint32_t NodeAddress)
AnnaBridge 157:e7ca05fa8600 1355 {
AnnaBridge 157:e7ca05fa8600 1356 MODIFY_REG(USARTx->CR2, USART_CR2_ADD | USART_CR2_ADDM7,
AnnaBridge 157:e7ca05fa8600 1357 (uint32_t)(AddressLen | (NodeAddress << USART_POSITION_CR2_ADD)));
AnnaBridge 157:e7ca05fa8600 1358 }
AnnaBridge 157:e7ca05fa8600 1359
AnnaBridge 157:e7ca05fa8600 1360 /**
AnnaBridge 157:e7ca05fa8600 1361 * @brief Return 8 bit Address of the USART node as set in ADD field of CR2.
AnnaBridge 157:e7ca05fa8600 1362 * @note If 4-bit Address Detection is selected in ADDM7,
AnnaBridge 157:e7ca05fa8600 1363 * only 4bits (b3-b0) of returned value are relevant (b31-b4 are not relevant)
AnnaBridge 157:e7ca05fa8600 1364 * If 7-bit Address Detection is selected in ADDM7,
AnnaBridge 157:e7ca05fa8600 1365 * only 8bits (b7-b0) of returned value are relevant (b31-b8 are not relevant)
AnnaBridge 157:e7ca05fa8600 1366 * @rmtoll CR2 ADD LL_USART_GetNodeAddress
AnnaBridge 157:e7ca05fa8600 1367 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1368 * @retval Address of the USART node (Value between Min_Data=0 and Max_Data=255)
AnnaBridge 157:e7ca05fa8600 1369 */
AnnaBridge 157:e7ca05fa8600 1370 __STATIC_INLINE uint32_t LL_USART_GetNodeAddress(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1371 {
AnnaBridge 157:e7ca05fa8600 1372 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADD) >> USART_POSITION_CR2_ADD);
AnnaBridge 157:e7ca05fa8600 1373 }
AnnaBridge 157:e7ca05fa8600 1374
AnnaBridge 157:e7ca05fa8600 1375 /**
AnnaBridge 157:e7ca05fa8600 1376 * @brief Return Length of Node Address used in Address Detection mode (7-bit or 4-bit)
AnnaBridge 157:e7ca05fa8600 1377 * @rmtoll CR2 ADDM7 LL_USART_GetNodeAddressLen
AnnaBridge 157:e7ca05fa8600 1378 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1379 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1380 * @arg @ref LL_USART_ADDRESS_DETECT_4B
AnnaBridge 157:e7ca05fa8600 1381 * @arg @ref LL_USART_ADDRESS_DETECT_7B
AnnaBridge 157:e7ca05fa8600 1382 */
AnnaBridge 157:e7ca05fa8600 1383 __STATIC_INLINE uint32_t LL_USART_GetNodeAddressLen(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1384 {
AnnaBridge 157:e7ca05fa8600 1385 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADDM7));
AnnaBridge 157:e7ca05fa8600 1386 }
AnnaBridge 157:e7ca05fa8600 1387
AnnaBridge 157:e7ca05fa8600 1388 /**
AnnaBridge 157:e7ca05fa8600 1389 * @brief Enable RTS HW Flow Control
AnnaBridge 157:e7ca05fa8600 1390 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1391 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1392 * @rmtoll CR3 RTSE LL_USART_EnableRTSHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1393 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1394 * @retval None
AnnaBridge 157:e7ca05fa8600 1395 */
AnnaBridge 157:e7ca05fa8600 1396 __STATIC_INLINE void LL_USART_EnableRTSHWFlowCtrl(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1397 {
AnnaBridge 157:e7ca05fa8600 1398 SET_BIT(USARTx->CR3, USART_CR3_RTSE);
AnnaBridge 157:e7ca05fa8600 1399 }
AnnaBridge 157:e7ca05fa8600 1400
AnnaBridge 157:e7ca05fa8600 1401 /**
AnnaBridge 157:e7ca05fa8600 1402 * @brief Disable RTS HW Flow Control
AnnaBridge 157:e7ca05fa8600 1403 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1404 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1405 * @rmtoll CR3 RTSE LL_USART_DisableRTSHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1406 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1407 * @retval None
AnnaBridge 157:e7ca05fa8600 1408 */
AnnaBridge 157:e7ca05fa8600 1409 __STATIC_INLINE void LL_USART_DisableRTSHWFlowCtrl(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1410 {
AnnaBridge 157:e7ca05fa8600 1411 CLEAR_BIT(USARTx->CR3, USART_CR3_RTSE);
AnnaBridge 157:e7ca05fa8600 1412 }
AnnaBridge 157:e7ca05fa8600 1413
AnnaBridge 157:e7ca05fa8600 1414 /**
AnnaBridge 157:e7ca05fa8600 1415 * @brief Enable CTS HW Flow Control
AnnaBridge 157:e7ca05fa8600 1416 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1417 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1418 * @rmtoll CR3 CTSE LL_USART_EnableCTSHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1419 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1420 * @retval None
AnnaBridge 157:e7ca05fa8600 1421 */
AnnaBridge 157:e7ca05fa8600 1422 __STATIC_INLINE void LL_USART_EnableCTSHWFlowCtrl(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1423 {
AnnaBridge 157:e7ca05fa8600 1424 SET_BIT(USARTx->CR3, USART_CR3_CTSE);
AnnaBridge 157:e7ca05fa8600 1425 }
AnnaBridge 157:e7ca05fa8600 1426
AnnaBridge 157:e7ca05fa8600 1427 /**
AnnaBridge 157:e7ca05fa8600 1428 * @brief Disable CTS HW Flow Control
AnnaBridge 157:e7ca05fa8600 1429 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1430 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1431 * @rmtoll CR3 CTSE LL_USART_DisableCTSHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1432 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1433 * @retval None
AnnaBridge 157:e7ca05fa8600 1434 */
AnnaBridge 157:e7ca05fa8600 1435 __STATIC_INLINE void LL_USART_DisableCTSHWFlowCtrl(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1436 {
AnnaBridge 157:e7ca05fa8600 1437 CLEAR_BIT(USARTx->CR3, USART_CR3_CTSE);
AnnaBridge 157:e7ca05fa8600 1438 }
AnnaBridge 157:e7ca05fa8600 1439
AnnaBridge 157:e7ca05fa8600 1440 /**
AnnaBridge 157:e7ca05fa8600 1441 * @brief Configure HW Flow Control mode (both CTS and RTS)
AnnaBridge 157:e7ca05fa8600 1442 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1443 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1444 * @rmtoll CR3 RTSE LL_USART_SetHWFlowCtrl\n
AnnaBridge 157:e7ca05fa8600 1445 * CR3 CTSE LL_USART_SetHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1446 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1447 * @param HardwareFlowControl This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1448 * @arg @ref LL_USART_HWCONTROL_NONE
AnnaBridge 157:e7ca05fa8600 1449 * @arg @ref LL_USART_HWCONTROL_RTS
AnnaBridge 157:e7ca05fa8600 1450 * @arg @ref LL_USART_HWCONTROL_CTS
AnnaBridge 157:e7ca05fa8600 1451 * @arg @ref LL_USART_HWCONTROL_RTS_CTS
AnnaBridge 157:e7ca05fa8600 1452 * @retval None
AnnaBridge 157:e7ca05fa8600 1453 */
AnnaBridge 157:e7ca05fa8600 1454 __STATIC_INLINE void LL_USART_SetHWFlowCtrl(USART_TypeDef *USARTx, uint32_t HardwareFlowControl)
AnnaBridge 157:e7ca05fa8600 1455 {
AnnaBridge 157:e7ca05fa8600 1456 MODIFY_REG(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE, HardwareFlowControl);
AnnaBridge 157:e7ca05fa8600 1457 }
AnnaBridge 157:e7ca05fa8600 1458
AnnaBridge 157:e7ca05fa8600 1459 /**
AnnaBridge 157:e7ca05fa8600 1460 * @brief Return HW Flow Control configuration (both CTS and RTS)
AnnaBridge 157:e7ca05fa8600 1461 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1462 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1463 * @rmtoll CR3 RTSE LL_USART_GetHWFlowCtrl\n
AnnaBridge 157:e7ca05fa8600 1464 * CR3 CTSE LL_USART_GetHWFlowCtrl
AnnaBridge 157:e7ca05fa8600 1465 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1466 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1467 * @arg @ref LL_USART_HWCONTROL_NONE
AnnaBridge 157:e7ca05fa8600 1468 * @arg @ref LL_USART_HWCONTROL_RTS
AnnaBridge 157:e7ca05fa8600 1469 * @arg @ref LL_USART_HWCONTROL_CTS
AnnaBridge 157:e7ca05fa8600 1470 * @arg @ref LL_USART_HWCONTROL_RTS_CTS
AnnaBridge 157:e7ca05fa8600 1471 */
AnnaBridge 157:e7ca05fa8600 1472 __STATIC_INLINE uint32_t LL_USART_GetHWFlowCtrl(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1473 {
AnnaBridge 157:e7ca05fa8600 1474 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE));
AnnaBridge 157:e7ca05fa8600 1475 }
AnnaBridge 157:e7ca05fa8600 1476
AnnaBridge 157:e7ca05fa8600 1477 /**
AnnaBridge 157:e7ca05fa8600 1478 * @brief Enable One bit sampling method
AnnaBridge 157:e7ca05fa8600 1479 * @rmtoll CR3 ONEBIT LL_USART_EnableOneBitSamp
AnnaBridge 157:e7ca05fa8600 1480 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1481 * @retval None
AnnaBridge 157:e7ca05fa8600 1482 */
AnnaBridge 157:e7ca05fa8600 1483 __STATIC_INLINE void LL_USART_EnableOneBitSamp(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1484 {
AnnaBridge 157:e7ca05fa8600 1485 SET_BIT(USARTx->CR3, USART_CR3_ONEBIT);
AnnaBridge 157:e7ca05fa8600 1486 }
AnnaBridge 157:e7ca05fa8600 1487
AnnaBridge 157:e7ca05fa8600 1488 /**
AnnaBridge 157:e7ca05fa8600 1489 * @brief Disable One bit sampling method
AnnaBridge 157:e7ca05fa8600 1490 * @rmtoll CR3 ONEBIT LL_USART_DisableOneBitSamp
AnnaBridge 157:e7ca05fa8600 1491 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1492 * @retval None
AnnaBridge 157:e7ca05fa8600 1493 */
AnnaBridge 157:e7ca05fa8600 1494 __STATIC_INLINE void LL_USART_DisableOneBitSamp(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1495 {
AnnaBridge 157:e7ca05fa8600 1496 CLEAR_BIT(USARTx->CR3, USART_CR3_ONEBIT);
AnnaBridge 157:e7ca05fa8600 1497 }
AnnaBridge 157:e7ca05fa8600 1498
AnnaBridge 157:e7ca05fa8600 1499 /**
AnnaBridge 157:e7ca05fa8600 1500 * @brief Indicate if One bit sampling method is enabled
AnnaBridge 157:e7ca05fa8600 1501 * @rmtoll CR3 ONEBIT LL_USART_IsEnabledOneBitSamp
AnnaBridge 157:e7ca05fa8600 1502 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1503 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1504 */
AnnaBridge 157:e7ca05fa8600 1505 __STATIC_INLINE uint32_t LL_USART_IsEnabledOneBitSamp(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1506 {
AnnaBridge 157:e7ca05fa8600 1507 return (READ_BIT(USARTx->CR3, USART_CR3_ONEBIT) == (USART_CR3_ONEBIT));
AnnaBridge 157:e7ca05fa8600 1508 }
AnnaBridge 157:e7ca05fa8600 1509
AnnaBridge 157:e7ca05fa8600 1510 /**
AnnaBridge 157:e7ca05fa8600 1511 * @brief Enable Overrun detection
AnnaBridge 157:e7ca05fa8600 1512 * @rmtoll CR3 OVRDIS LL_USART_EnableOverrunDetect
AnnaBridge 157:e7ca05fa8600 1513 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1514 * @retval None
AnnaBridge 157:e7ca05fa8600 1515 */
AnnaBridge 157:e7ca05fa8600 1516 __STATIC_INLINE void LL_USART_EnableOverrunDetect(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1517 {
AnnaBridge 157:e7ca05fa8600 1518 CLEAR_BIT(USARTx->CR3, USART_CR3_OVRDIS);
AnnaBridge 157:e7ca05fa8600 1519 }
AnnaBridge 157:e7ca05fa8600 1520
AnnaBridge 157:e7ca05fa8600 1521 /**
AnnaBridge 157:e7ca05fa8600 1522 * @brief Disable Overrun detection
AnnaBridge 157:e7ca05fa8600 1523 * @rmtoll CR3 OVRDIS LL_USART_DisableOverrunDetect
AnnaBridge 157:e7ca05fa8600 1524 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1525 * @retval None
AnnaBridge 157:e7ca05fa8600 1526 */
AnnaBridge 157:e7ca05fa8600 1527 __STATIC_INLINE void LL_USART_DisableOverrunDetect(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1528 {
AnnaBridge 157:e7ca05fa8600 1529 SET_BIT(USARTx->CR3, USART_CR3_OVRDIS);
AnnaBridge 157:e7ca05fa8600 1530 }
AnnaBridge 157:e7ca05fa8600 1531
AnnaBridge 157:e7ca05fa8600 1532 /**
AnnaBridge 157:e7ca05fa8600 1533 * @brief Indicate if Overrun detection is enabled
AnnaBridge 157:e7ca05fa8600 1534 * @rmtoll CR3 OVRDIS LL_USART_IsEnabledOverrunDetect
AnnaBridge 157:e7ca05fa8600 1535 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1536 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1537 */
AnnaBridge 157:e7ca05fa8600 1538 __STATIC_INLINE uint32_t LL_USART_IsEnabledOverrunDetect(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1539 {
AnnaBridge 157:e7ca05fa8600 1540 return (READ_BIT(USARTx->CR3, USART_CR3_OVRDIS) != USART_CR3_OVRDIS);
AnnaBridge 157:e7ca05fa8600 1541 }
AnnaBridge 157:e7ca05fa8600 1542
AnnaBridge 157:e7ca05fa8600 1543 /**
AnnaBridge 157:e7ca05fa8600 1544 * @brief Select event type for Wake UP Interrupt Flag (WUS[1:0] bits)
AnnaBridge 157:e7ca05fa8600 1545 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1546 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1547 * @rmtoll CR3 WUS LL_USART_SetWKUPType
AnnaBridge 157:e7ca05fa8600 1548 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1549 * @param Type This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1550 * @arg @ref LL_USART_WAKEUP_ON_ADDRESS
AnnaBridge 157:e7ca05fa8600 1551 * @arg @ref LL_USART_WAKEUP_ON_STARTBIT
AnnaBridge 157:e7ca05fa8600 1552 * @arg @ref LL_USART_WAKEUP_ON_RXNE
AnnaBridge 157:e7ca05fa8600 1553 * @retval None
AnnaBridge 157:e7ca05fa8600 1554 */
AnnaBridge 157:e7ca05fa8600 1555 __STATIC_INLINE void LL_USART_SetWKUPType(USART_TypeDef *USARTx, uint32_t Type)
AnnaBridge 157:e7ca05fa8600 1556 {
AnnaBridge 157:e7ca05fa8600 1557 MODIFY_REG(USARTx->CR3, USART_CR3_WUS, Type);
AnnaBridge 157:e7ca05fa8600 1558 }
AnnaBridge 157:e7ca05fa8600 1559
AnnaBridge 157:e7ca05fa8600 1560 /**
AnnaBridge 157:e7ca05fa8600 1561 * @brief Return event type for Wake UP Interrupt Flag (WUS[1:0] bits)
AnnaBridge 157:e7ca05fa8600 1562 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1563 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1564 * @rmtoll CR3 WUS LL_USART_GetWKUPType
AnnaBridge 157:e7ca05fa8600 1565 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1566 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1567 * @arg @ref LL_USART_WAKEUP_ON_ADDRESS
AnnaBridge 157:e7ca05fa8600 1568 * @arg @ref LL_USART_WAKEUP_ON_STARTBIT
AnnaBridge 157:e7ca05fa8600 1569 * @arg @ref LL_USART_WAKEUP_ON_RXNE
AnnaBridge 157:e7ca05fa8600 1570 */
AnnaBridge 157:e7ca05fa8600 1571 __STATIC_INLINE uint32_t LL_USART_GetWKUPType(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1572 {
AnnaBridge 157:e7ca05fa8600 1573 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_WUS));
AnnaBridge 157:e7ca05fa8600 1574 }
AnnaBridge 157:e7ca05fa8600 1575
AnnaBridge 157:e7ca05fa8600 1576 /**
AnnaBridge 157:e7ca05fa8600 1577 * @brief Configure USART BRR register for achieving expected Baud Rate value.
AnnaBridge 157:e7ca05fa8600 1578 * @note Compute and set USARTDIV value in BRR Register (full BRR content)
AnnaBridge 157:e7ca05fa8600 1579 * according to used Peripheral Clock, Oversampling mode, and expected Baud Rate values
AnnaBridge 157:e7ca05fa8600 1580 * @note Peripheral clock and Baud rate values provided as function parameters should be valid
AnnaBridge 157:e7ca05fa8600 1581 * (Baud rate value != 0)
AnnaBridge 157:e7ca05fa8600 1582 * @rmtoll BRR BRR LL_USART_SetBaudRate
AnnaBridge 157:e7ca05fa8600 1583 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1584 * @param PeriphClk Peripheral Clock
AnnaBridge 157:e7ca05fa8600 1585 * @param OverSampling This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1586 * @arg @ref LL_USART_OVERSAMPLING_16
AnnaBridge 157:e7ca05fa8600 1587 * @arg @ref LL_USART_OVERSAMPLING_8
AnnaBridge 157:e7ca05fa8600 1588 * @param BaudRate Baud Rate
AnnaBridge 157:e7ca05fa8600 1589 * @retval None
AnnaBridge 157:e7ca05fa8600 1590 */
AnnaBridge 157:e7ca05fa8600 1591 __STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling,
AnnaBridge 157:e7ca05fa8600 1592 uint32_t BaudRate)
AnnaBridge 157:e7ca05fa8600 1593 {
AnnaBridge 157:e7ca05fa8600 1594 register uint32_t usartdiv = 0x0U;
AnnaBridge 157:e7ca05fa8600 1595 register uint32_t brrtemp = 0x0U;
AnnaBridge 157:e7ca05fa8600 1596
AnnaBridge 157:e7ca05fa8600 1597 if (OverSampling == LL_USART_OVERSAMPLING_8)
AnnaBridge 157:e7ca05fa8600 1598 {
AnnaBridge 157:e7ca05fa8600 1599 usartdiv = (uint16_t)(__LL_USART_DIV_SAMPLING8(PeriphClk, BaudRate));
AnnaBridge 157:e7ca05fa8600 1600 brrtemp = usartdiv & 0xFFF0U;
AnnaBridge 157:e7ca05fa8600 1601 brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
AnnaBridge 157:e7ca05fa8600 1602 USARTx->BRR = brrtemp;
AnnaBridge 157:e7ca05fa8600 1603 }
AnnaBridge 157:e7ca05fa8600 1604 else
AnnaBridge 157:e7ca05fa8600 1605 {
AnnaBridge 157:e7ca05fa8600 1606 USARTx->BRR = (uint16_t)(__LL_USART_DIV_SAMPLING16(PeriphClk, BaudRate));
AnnaBridge 157:e7ca05fa8600 1607 }
AnnaBridge 157:e7ca05fa8600 1608 }
AnnaBridge 157:e7ca05fa8600 1609
AnnaBridge 157:e7ca05fa8600 1610 /**
AnnaBridge 157:e7ca05fa8600 1611 * @brief Return current Baud Rate value, according to USARTDIV present in BRR register
AnnaBridge 157:e7ca05fa8600 1612 * (full BRR content), and to used Peripheral Clock and Oversampling mode values
AnnaBridge 157:e7ca05fa8600 1613 * @note In case of non-initialized or invalid value stored in BRR register, value 0 will be returned.
AnnaBridge 157:e7ca05fa8600 1614 * @rmtoll BRR BRR LL_USART_GetBaudRate
AnnaBridge 157:e7ca05fa8600 1615 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1616 * @param PeriphClk Peripheral Clock
AnnaBridge 157:e7ca05fa8600 1617 * @param OverSampling This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1618 * @arg @ref LL_USART_OVERSAMPLING_16
AnnaBridge 157:e7ca05fa8600 1619 * @arg @ref LL_USART_OVERSAMPLING_8
AnnaBridge 157:e7ca05fa8600 1620 * @retval Baud Rate
AnnaBridge 157:e7ca05fa8600 1621 */
AnnaBridge 157:e7ca05fa8600 1622 __STATIC_INLINE uint32_t LL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling)
AnnaBridge 157:e7ca05fa8600 1623 {
AnnaBridge 157:e7ca05fa8600 1624 register uint32_t usartdiv = 0x0U;
AnnaBridge 157:e7ca05fa8600 1625 register uint32_t brrresult = 0x0U;
AnnaBridge 157:e7ca05fa8600 1626
AnnaBridge 157:e7ca05fa8600 1627 usartdiv = USARTx->BRR;
AnnaBridge 157:e7ca05fa8600 1628
AnnaBridge 157:e7ca05fa8600 1629 if (OverSampling == LL_USART_OVERSAMPLING_8)
AnnaBridge 157:e7ca05fa8600 1630 {
AnnaBridge 157:e7ca05fa8600 1631 if ((usartdiv & 0xFFF7U) != 0U)
AnnaBridge 157:e7ca05fa8600 1632 {
AnnaBridge 157:e7ca05fa8600 1633 usartdiv = (uint16_t)((usartdiv & 0xFFF0U) | ((usartdiv & 0x0007U) << 1U)) ;
AnnaBridge 157:e7ca05fa8600 1634 brrresult = (PeriphClk * 2U) / usartdiv;
AnnaBridge 157:e7ca05fa8600 1635 }
AnnaBridge 157:e7ca05fa8600 1636 }
AnnaBridge 157:e7ca05fa8600 1637 else
AnnaBridge 157:e7ca05fa8600 1638 {
AnnaBridge 157:e7ca05fa8600 1639 if ((usartdiv & 0xFFFFU) != 0U)
AnnaBridge 157:e7ca05fa8600 1640 {
AnnaBridge 157:e7ca05fa8600 1641 brrresult = PeriphClk / usartdiv;
AnnaBridge 157:e7ca05fa8600 1642 }
AnnaBridge 157:e7ca05fa8600 1643 }
AnnaBridge 157:e7ca05fa8600 1644 return (brrresult);
AnnaBridge 157:e7ca05fa8600 1645 }
AnnaBridge 157:e7ca05fa8600 1646
AnnaBridge 157:e7ca05fa8600 1647 /**
AnnaBridge 157:e7ca05fa8600 1648 * @brief Set Receiver Time Out Value (expressed in nb of bits duration)
AnnaBridge 157:e7ca05fa8600 1649 * @rmtoll RTOR RTO LL_USART_SetRxTimeout
AnnaBridge 157:e7ca05fa8600 1650 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1651 * @param Timeout Value between Min_Data=0x00 and Max_Data=0x00FFFFFF
AnnaBridge 157:e7ca05fa8600 1652 * @retval None
AnnaBridge 157:e7ca05fa8600 1653 */
AnnaBridge 157:e7ca05fa8600 1654 __STATIC_INLINE void LL_USART_SetRxTimeout(USART_TypeDef *USARTx, uint32_t Timeout)
AnnaBridge 157:e7ca05fa8600 1655 {
AnnaBridge 157:e7ca05fa8600 1656 MODIFY_REG(USARTx->RTOR, USART_RTOR_RTO, Timeout);
AnnaBridge 157:e7ca05fa8600 1657 }
AnnaBridge 157:e7ca05fa8600 1658
AnnaBridge 157:e7ca05fa8600 1659 /**
AnnaBridge 157:e7ca05fa8600 1660 * @brief Get Receiver Time Out Value (expressed in nb of bits duration)
AnnaBridge 157:e7ca05fa8600 1661 * @rmtoll RTOR RTO LL_USART_GetRxTimeout
AnnaBridge 157:e7ca05fa8600 1662 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1663 * @retval Value between Min_Data=0x00 and Max_Data=0x00FFFFFF
AnnaBridge 157:e7ca05fa8600 1664 */
AnnaBridge 157:e7ca05fa8600 1665 __STATIC_INLINE uint32_t LL_USART_GetRxTimeout(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1666 {
AnnaBridge 157:e7ca05fa8600 1667 return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_RTO));
AnnaBridge 157:e7ca05fa8600 1668 }
AnnaBridge 157:e7ca05fa8600 1669
AnnaBridge 157:e7ca05fa8600 1670 /**
AnnaBridge 157:e7ca05fa8600 1671 * @brief Set Block Length value in reception
AnnaBridge 157:e7ca05fa8600 1672 * @rmtoll RTOR BLEN LL_USART_SetBlockLength
AnnaBridge 157:e7ca05fa8600 1673 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1674 * @param BlockLength Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 1675 * @retval None
AnnaBridge 157:e7ca05fa8600 1676 */
AnnaBridge 157:e7ca05fa8600 1677 __STATIC_INLINE void LL_USART_SetBlockLength(USART_TypeDef *USARTx, uint32_t BlockLength)
AnnaBridge 157:e7ca05fa8600 1678 {
AnnaBridge 157:e7ca05fa8600 1679 MODIFY_REG(USARTx->RTOR, USART_RTOR_BLEN, BlockLength << USART_POSITION_RTOR_BLEN);
AnnaBridge 157:e7ca05fa8600 1680 }
AnnaBridge 157:e7ca05fa8600 1681
AnnaBridge 157:e7ca05fa8600 1682 /**
AnnaBridge 157:e7ca05fa8600 1683 * @brief Get Block Length value in reception
AnnaBridge 157:e7ca05fa8600 1684 * @rmtoll RTOR BLEN LL_USART_GetBlockLength
AnnaBridge 157:e7ca05fa8600 1685 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1686 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 1687 */
AnnaBridge 157:e7ca05fa8600 1688 __STATIC_INLINE uint32_t LL_USART_GetBlockLength(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1689 {
AnnaBridge 157:e7ca05fa8600 1690 return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_BLEN) >> USART_POSITION_RTOR_BLEN);
AnnaBridge 157:e7ca05fa8600 1691 }
AnnaBridge 157:e7ca05fa8600 1692
AnnaBridge 157:e7ca05fa8600 1693 /**
AnnaBridge 157:e7ca05fa8600 1694 * @}
AnnaBridge 157:e7ca05fa8600 1695 */
AnnaBridge 157:e7ca05fa8600 1696
AnnaBridge 157:e7ca05fa8600 1697 /** @defgroup USART_LL_EF_Configuration_IRDA Configuration functions related to Irda feature
AnnaBridge 157:e7ca05fa8600 1698 * @{
AnnaBridge 157:e7ca05fa8600 1699 */
AnnaBridge 157:e7ca05fa8600 1700
AnnaBridge 157:e7ca05fa8600 1701 /**
AnnaBridge 157:e7ca05fa8600 1702 * @brief Enable IrDA mode
AnnaBridge 157:e7ca05fa8600 1703 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1704 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1705 * @rmtoll CR3 IREN LL_USART_EnableIrda
AnnaBridge 157:e7ca05fa8600 1706 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1707 * @retval None
AnnaBridge 157:e7ca05fa8600 1708 */
AnnaBridge 157:e7ca05fa8600 1709 __STATIC_INLINE void LL_USART_EnableIrda(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1710 {
AnnaBridge 157:e7ca05fa8600 1711 SET_BIT(USARTx->CR3, USART_CR3_IREN);
AnnaBridge 157:e7ca05fa8600 1712 }
AnnaBridge 157:e7ca05fa8600 1713
AnnaBridge 157:e7ca05fa8600 1714 /**
AnnaBridge 157:e7ca05fa8600 1715 * @brief Disable IrDA mode
AnnaBridge 157:e7ca05fa8600 1716 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1717 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1718 * @rmtoll CR3 IREN LL_USART_DisableIrda
AnnaBridge 157:e7ca05fa8600 1719 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1720 * @retval None
AnnaBridge 157:e7ca05fa8600 1721 */
AnnaBridge 157:e7ca05fa8600 1722 __STATIC_INLINE void LL_USART_DisableIrda(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1723 {
AnnaBridge 157:e7ca05fa8600 1724 CLEAR_BIT(USARTx->CR3, USART_CR3_IREN);
AnnaBridge 157:e7ca05fa8600 1725 }
AnnaBridge 157:e7ca05fa8600 1726
AnnaBridge 157:e7ca05fa8600 1727 /**
AnnaBridge 157:e7ca05fa8600 1728 * @brief Indicate if IrDA mode is enabled
AnnaBridge 157:e7ca05fa8600 1729 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1730 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1731 * @rmtoll CR3 IREN LL_USART_IsEnabledIrda
AnnaBridge 157:e7ca05fa8600 1732 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1733 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1734 */
AnnaBridge 157:e7ca05fa8600 1735 __STATIC_INLINE uint32_t LL_USART_IsEnabledIrda(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1736 {
AnnaBridge 157:e7ca05fa8600 1737 return (READ_BIT(USARTx->CR3, USART_CR3_IREN) == (USART_CR3_IREN));
AnnaBridge 157:e7ca05fa8600 1738 }
AnnaBridge 157:e7ca05fa8600 1739
AnnaBridge 157:e7ca05fa8600 1740 /**
AnnaBridge 157:e7ca05fa8600 1741 * @brief Configure IrDA Power Mode (Normal or Low Power)
AnnaBridge 157:e7ca05fa8600 1742 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1743 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1744 * @rmtoll CR3 IRLP LL_USART_SetIrdaPowerMode
AnnaBridge 157:e7ca05fa8600 1745 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1746 * @param PowerMode This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1747 * @arg @ref LL_USART_IRDA_POWER_NORMAL
AnnaBridge 157:e7ca05fa8600 1748 * @arg @ref LL_USART_IRDA_POWER_LOW
AnnaBridge 157:e7ca05fa8600 1749 * @retval None
AnnaBridge 157:e7ca05fa8600 1750 */
AnnaBridge 157:e7ca05fa8600 1751 __STATIC_INLINE void LL_USART_SetIrdaPowerMode(USART_TypeDef *USARTx, uint32_t PowerMode)
AnnaBridge 157:e7ca05fa8600 1752 {
AnnaBridge 157:e7ca05fa8600 1753 MODIFY_REG(USARTx->CR3, USART_CR3_IRLP, PowerMode);
AnnaBridge 157:e7ca05fa8600 1754 }
AnnaBridge 157:e7ca05fa8600 1755
AnnaBridge 157:e7ca05fa8600 1756 /**
AnnaBridge 157:e7ca05fa8600 1757 * @brief Retrieve IrDA Power Mode configuration (Normal or Low Power)
AnnaBridge 157:e7ca05fa8600 1758 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1759 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1760 * @rmtoll CR3 IRLP LL_USART_GetIrdaPowerMode
AnnaBridge 157:e7ca05fa8600 1761 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1762 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 1763 * @arg @ref LL_USART_IRDA_POWER_NORMAL
AnnaBridge 157:e7ca05fa8600 1764 * @arg @ref LL_USART_PHASE_2EDGE
AnnaBridge 157:e7ca05fa8600 1765 */
AnnaBridge 157:e7ca05fa8600 1766 __STATIC_INLINE uint32_t LL_USART_GetIrdaPowerMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1767 {
AnnaBridge 157:e7ca05fa8600 1768 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_IRLP));
AnnaBridge 157:e7ca05fa8600 1769 }
AnnaBridge 157:e7ca05fa8600 1770
AnnaBridge 157:e7ca05fa8600 1771 /**
AnnaBridge 157:e7ca05fa8600 1772 * @brief Set Irda prescaler value, used for dividing the USART clock source
AnnaBridge 157:e7ca05fa8600 1773 * to achieve the Irda Low Power frequency (8 bits value)
AnnaBridge 157:e7ca05fa8600 1774 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1775 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1776 * @rmtoll GTPR PSC LL_USART_SetIrdaPrescaler
AnnaBridge 157:e7ca05fa8600 1777 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1778 * @param PrescalerValue Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 1779 * @retval None
AnnaBridge 157:e7ca05fa8600 1780 */
AnnaBridge 157:e7ca05fa8600 1781 __STATIC_INLINE void LL_USART_SetIrdaPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
AnnaBridge 157:e7ca05fa8600 1782 {
AnnaBridge 157:e7ca05fa8600 1783 MODIFY_REG(USARTx->GTPR, USART_GTPR_PSC, PrescalerValue);
AnnaBridge 157:e7ca05fa8600 1784 }
AnnaBridge 157:e7ca05fa8600 1785
AnnaBridge 157:e7ca05fa8600 1786 /**
AnnaBridge 157:e7ca05fa8600 1787 * @brief Return Irda prescaler value, used for dividing the USART clock source
AnnaBridge 157:e7ca05fa8600 1788 * to achieve the Irda Low Power frequency (8 bits value)
AnnaBridge 157:e7ca05fa8600 1789 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1790 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1791 * @rmtoll GTPR PSC LL_USART_GetIrdaPrescaler
AnnaBridge 157:e7ca05fa8600 1792 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1793 * @retval Irda prescaler value (Value between Min_Data=0x00 and Max_Data=0xFF)
AnnaBridge 157:e7ca05fa8600 1794 */
AnnaBridge 157:e7ca05fa8600 1795 __STATIC_INLINE uint32_t LL_USART_GetIrdaPrescaler(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1796 {
AnnaBridge 157:e7ca05fa8600 1797 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC));
AnnaBridge 157:e7ca05fa8600 1798 }
AnnaBridge 157:e7ca05fa8600 1799
AnnaBridge 157:e7ca05fa8600 1800 /**
AnnaBridge 157:e7ca05fa8600 1801 * @}
AnnaBridge 157:e7ca05fa8600 1802 */
AnnaBridge 157:e7ca05fa8600 1803
AnnaBridge 157:e7ca05fa8600 1804 /** @defgroup USART_LL_EF_Configuration_Smartcard Configuration functions related to Smartcard feature
AnnaBridge 157:e7ca05fa8600 1805 * @{
AnnaBridge 157:e7ca05fa8600 1806 */
AnnaBridge 157:e7ca05fa8600 1807
AnnaBridge 157:e7ca05fa8600 1808 /**
AnnaBridge 157:e7ca05fa8600 1809 * @brief Enable Smartcard NACK transmission
AnnaBridge 157:e7ca05fa8600 1810 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1811 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1812 * @rmtoll CR3 NACK LL_USART_EnableSmartcardNACK
AnnaBridge 157:e7ca05fa8600 1813 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1814 * @retval None
AnnaBridge 157:e7ca05fa8600 1815 */
AnnaBridge 157:e7ca05fa8600 1816 __STATIC_INLINE void LL_USART_EnableSmartcardNACK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1817 {
AnnaBridge 157:e7ca05fa8600 1818 SET_BIT(USARTx->CR3, USART_CR3_NACK);
AnnaBridge 157:e7ca05fa8600 1819 }
AnnaBridge 157:e7ca05fa8600 1820
AnnaBridge 157:e7ca05fa8600 1821 /**
AnnaBridge 157:e7ca05fa8600 1822 * @brief Disable Smartcard NACK transmission
AnnaBridge 157:e7ca05fa8600 1823 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1824 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1825 * @rmtoll CR3 NACK LL_USART_DisableSmartcardNACK
AnnaBridge 157:e7ca05fa8600 1826 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1827 * @retval None
AnnaBridge 157:e7ca05fa8600 1828 */
AnnaBridge 157:e7ca05fa8600 1829 __STATIC_INLINE void LL_USART_DisableSmartcardNACK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1830 {
AnnaBridge 157:e7ca05fa8600 1831 CLEAR_BIT(USARTx->CR3, USART_CR3_NACK);
AnnaBridge 157:e7ca05fa8600 1832 }
AnnaBridge 157:e7ca05fa8600 1833
AnnaBridge 157:e7ca05fa8600 1834 /**
AnnaBridge 157:e7ca05fa8600 1835 * @brief Indicate if Smartcard NACK transmission is enabled
AnnaBridge 157:e7ca05fa8600 1836 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1837 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1838 * @rmtoll CR3 NACK LL_USART_IsEnabledSmartcardNACK
AnnaBridge 157:e7ca05fa8600 1839 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1840 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1841 */
AnnaBridge 157:e7ca05fa8600 1842 __STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcardNACK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1843 {
AnnaBridge 157:e7ca05fa8600 1844 return (READ_BIT(USARTx->CR3, USART_CR3_NACK) == (USART_CR3_NACK));
AnnaBridge 157:e7ca05fa8600 1845 }
AnnaBridge 157:e7ca05fa8600 1846
AnnaBridge 157:e7ca05fa8600 1847 /**
AnnaBridge 157:e7ca05fa8600 1848 * @brief Enable Smartcard mode
AnnaBridge 157:e7ca05fa8600 1849 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1850 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1851 * @rmtoll CR3 SCEN LL_USART_EnableSmartcard
AnnaBridge 157:e7ca05fa8600 1852 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1853 * @retval None
AnnaBridge 157:e7ca05fa8600 1854 */
AnnaBridge 157:e7ca05fa8600 1855 __STATIC_INLINE void LL_USART_EnableSmartcard(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1856 {
AnnaBridge 157:e7ca05fa8600 1857 SET_BIT(USARTx->CR3, USART_CR3_SCEN);
AnnaBridge 157:e7ca05fa8600 1858 }
AnnaBridge 157:e7ca05fa8600 1859
AnnaBridge 157:e7ca05fa8600 1860 /**
AnnaBridge 157:e7ca05fa8600 1861 * @brief Disable Smartcard mode
AnnaBridge 157:e7ca05fa8600 1862 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1863 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1864 * @rmtoll CR3 SCEN LL_USART_DisableSmartcard
AnnaBridge 157:e7ca05fa8600 1865 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1866 * @retval None
AnnaBridge 157:e7ca05fa8600 1867 */
AnnaBridge 157:e7ca05fa8600 1868 __STATIC_INLINE void LL_USART_DisableSmartcard(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1869 {
AnnaBridge 157:e7ca05fa8600 1870 CLEAR_BIT(USARTx->CR3, USART_CR3_SCEN);
AnnaBridge 157:e7ca05fa8600 1871 }
AnnaBridge 157:e7ca05fa8600 1872
AnnaBridge 157:e7ca05fa8600 1873 /**
AnnaBridge 157:e7ca05fa8600 1874 * @brief Indicate if Smartcard mode is enabled
AnnaBridge 157:e7ca05fa8600 1875 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1876 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1877 * @rmtoll CR3 SCEN LL_USART_IsEnabledSmartcard
AnnaBridge 157:e7ca05fa8600 1878 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1879 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 1880 */
AnnaBridge 157:e7ca05fa8600 1881 __STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcard(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1882 {
AnnaBridge 157:e7ca05fa8600 1883 return (READ_BIT(USARTx->CR3, USART_CR3_SCEN) == (USART_CR3_SCEN));
AnnaBridge 157:e7ca05fa8600 1884 }
AnnaBridge 157:e7ca05fa8600 1885
AnnaBridge 157:e7ca05fa8600 1886 /**
AnnaBridge 157:e7ca05fa8600 1887 * @brief Set Smartcard Auto-Retry Count value (SCARCNT[2:0] bits)
AnnaBridge 157:e7ca05fa8600 1888 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1889 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1890 * @note This bit-field specifies the number of retries in transmit and receive, in Smartcard mode.
AnnaBridge 157:e7ca05fa8600 1891 * In transmission mode, it specifies the number of automatic retransmission retries, before
AnnaBridge 157:e7ca05fa8600 1892 * generating a transmission error (FE bit set).
AnnaBridge 157:e7ca05fa8600 1893 * In reception mode, it specifies the number or erroneous reception trials, before generating a
AnnaBridge 157:e7ca05fa8600 1894 * reception error (RXNE and PE bits set)
AnnaBridge 157:e7ca05fa8600 1895 * @rmtoll CR3 SCARCNT LL_USART_SetSmartcardAutoRetryCount
AnnaBridge 157:e7ca05fa8600 1896 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1897 * @param AutoRetryCount Value between Min_Data=0 and Max_Data=7
AnnaBridge 157:e7ca05fa8600 1898 * @retval None
AnnaBridge 157:e7ca05fa8600 1899 */
AnnaBridge 157:e7ca05fa8600 1900 __STATIC_INLINE void LL_USART_SetSmartcardAutoRetryCount(USART_TypeDef *USARTx, uint32_t AutoRetryCount)
AnnaBridge 157:e7ca05fa8600 1901 {
AnnaBridge 157:e7ca05fa8600 1902 MODIFY_REG(USARTx->CR3, USART_CR3_SCARCNT, AutoRetryCount << USART_POSITION_CR3_SCARCNT);
AnnaBridge 157:e7ca05fa8600 1903 }
AnnaBridge 157:e7ca05fa8600 1904
AnnaBridge 157:e7ca05fa8600 1905 /**
AnnaBridge 157:e7ca05fa8600 1906 * @brief Return Smartcard Auto-Retry Count value (SCARCNT[2:0] bits)
AnnaBridge 157:e7ca05fa8600 1907 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1908 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1909 * @rmtoll CR3 SCARCNT LL_USART_GetSmartcardAutoRetryCount
AnnaBridge 157:e7ca05fa8600 1910 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1911 * @retval Smartcard Auto-Retry Count value (Value between Min_Data=0 and Max_Data=7)
AnnaBridge 157:e7ca05fa8600 1912 */
AnnaBridge 157:e7ca05fa8600 1913 __STATIC_INLINE uint32_t LL_USART_GetSmartcardAutoRetryCount(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1914 {
AnnaBridge 157:e7ca05fa8600 1915 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_SCARCNT) >> USART_POSITION_CR3_SCARCNT);
AnnaBridge 157:e7ca05fa8600 1916 }
AnnaBridge 157:e7ca05fa8600 1917
AnnaBridge 157:e7ca05fa8600 1918 /**
AnnaBridge 157:e7ca05fa8600 1919 * @brief Set Smartcard prescaler value, used for dividing the USART clock
AnnaBridge 157:e7ca05fa8600 1920 * source to provide the SMARTCARD Clock (5 bits value)
AnnaBridge 157:e7ca05fa8600 1921 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1922 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1923 * @rmtoll GTPR PSC LL_USART_SetSmartcardPrescaler
AnnaBridge 157:e7ca05fa8600 1924 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1925 * @param PrescalerValue Value between Min_Data=0 and Max_Data=31
AnnaBridge 157:e7ca05fa8600 1926 * @retval None
AnnaBridge 157:e7ca05fa8600 1927 */
AnnaBridge 157:e7ca05fa8600 1928 __STATIC_INLINE void LL_USART_SetSmartcardPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
AnnaBridge 157:e7ca05fa8600 1929 {
AnnaBridge 157:e7ca05fa8600 1930 MODIFY_REG(USARTx->GTPR, USART_GTPR_PSC, PrescalerValue);
AnnaBridge 157:e7ca05fa8600 1931 }
AnnaBridge 157:e7ca05fa8600 1932
AnnaBridge 157:e7ca05fa8600 1933 /**
AnnaBridge 157:e7ca05fa8600 1934 * @brief Return Smartcard prescaler value, used for dividing the USART clock
AnnaBridge 157:e7ca05fa8600 1935 * source to provide the SMARTCARD Clock (5 bits value)
AnnaBridge 157:e7ca05fa8600 1936 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1937 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1938 * @rmtoll GTPR PSC LL_USART_GetSmartcardPrescaler
AnnaBridge 157:e7ca05fa8600 1939 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1940 * @retval Smartcard prescaler value (Value between Min_Data=0 and Max_Data=31)
AnnaBridge 157:e7ca05fa8600 1941 */
AnnaBridge 157:e7ca05fa8600 1942 __STATIC_INLINE uint32_t LL_USART_GetSmartcardPrescaler(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1943 {
AnnaBridge 157:e7ca05fa8600 1944 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC));
AnnaBridge 157:e7ca05fa8600 1945 }
AnnaBridge 157:e7ca05fa8600 1946
AnnaBridge 157:e7ca05fa8600 1947 /**
AnnaBridge 157:e7ca05fa8600 1948 * @brief Set Smartcard Guard time value, expressed in nb of baud clocks periods
AnnaBridge 157:e7ca05fa8600 1949 * (GT[7:0] bits : Guard time value)
AnnaBridge 157:e7ca05fa8600 1950 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1951 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1952 * @rmtoll GTPR GT LL_USART_SetSmartcardGuardTime
AnnaBridge 157:e7ca05fa8600 1953 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1954 * @param GuardTime Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 1955 * @retval None
AnnaBridge 157:e7ca05fa8600 1956 */
AnnaBridge 157:e7ca05fa8600 1957 __STATIC_INLINE void LL_USART_SetSmartcardGuardTime(USART_TypeDef *USARTx, uint32_t GuardTime)
AnnaBridge 157:e7ca05fa8600 1958 {
AnnaBridge 157:e7ca05fa8600 1959 MODIFY_REG(USARTx->GTPR, USART_GTPR_GT, GuardTime << USART_POSITION_GTPR_GT);
AnnaBridge 157:e7ca05fa8600 1960 }
AnnaBridge 157:e7ca05fa8600 1961
AnnaBridge 157:e7ca05fa8600 1962 /**
AnnaBridge 157:e7ca05fa8600 1963 * @brief Return Smartcard Guard time value, expressed in nb of baud clocks periods
AnnaBridge 157:e7ca05fa8600 1964 * (GT[7:0] bits : Guard time value)
AnnaBridge 157:e7ca05fa8600 1965 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1966 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1967 * @rmtoll GTPR GT LL_USART_GetSmartcardGuardTime
AnnaBridge 157:e7ca05fa8600 1968 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1969 * @retval Smartcard Guard time value (Value between Min_Data=0x00 and Max_Data=0xFF)
AnnaBridge 157:e7ca05fa8600 1970 */
AnnaBridge 157:e7ca05fa8600 1971 __STATIC_INLINE uint32_t LL_USART_GetSmartcardGuardTime(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1972 {
AnnaBridge 157:e7ca05fa8600 1973 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_GT) >> USART_POSITION_GTPR_GT);
AnnaBridge 157:e7ca05fa8600 1974 }
AnnaBridge 157:e7ca05fa8600 1975
AnnaBridge 157:e7ca05fa8600 1976 /**
AnnaBridge 157:e7ca05fa8600 1977 * @}
AnnaBridge 157:e7ca05fa8600 1978 */
AnnaBridge 157:e7ca05fa8600 1979
AnnaBridge 157:e7ca05fa8600 1980 /** @defgroup USART_LL_EF_Configuration_HalfDuplex Configuration functions related to Half Duplex feature
AnnaBridge 157:e7ca05fa8600 1981 * @{
AnnaBridge 157:e7ca05fa8600 1982 */
AnnaBridge 157:e7ca05fa8600 1983
AnnaBridge 157:e7ca05fa8600 1984 /**
AnnaBridge 157:e7ca05fa8600 1985 * @brief Enable Single Wire Half-Duplex mode
AnnaBridge 157:e7ca05fa8600 1986 * @note Macro @ref IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 1987 * Half-Duplex mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 1988 * @rmtoll CR3 HDSEL LL_USART_EnableHalfDuplex
AnnaBridge 157:e7ca05fa8600 1989 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 1990 * @retval None
AnnaBridge 157:e7ca05fa8600 1991 */
AnnaBridge 157:e7ca05fa8600 1992 __STATIC_INLINE void LL_USART_EnableHalfDuplex(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 1993 {
AnnaBridge 157:e7ca05fa8600 1994 SET_BIT(USARTx->CR3, USART_CR3_HDSEL);
AnnaBridge 157:e7ca05fa8600 1995 }
AnnaBridge 157:e7ca05fa8600 1996
AnnaBridge 157:e7ca05fa8600 1997 /**
AnnaBridge 157:e7ca05fa8600 1998 * @brief Disable Single Wire Half-Duplex mode
AnnaBridge 157:e7ca05fa8600 1999 * @note Macro @ref IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2000 * Half-Duplex mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2001 * @rmtoll CR3 HDSEL LL_USART_DisableHalfDuplex
AnnaBridge 157:e7ca05fa8600 2002 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2003 * @retval None
AnnaBridge 157:e7ca05fa8600 2004 */
AnnaBridge 157:e7ca05fa8600 2005 __STATIC_INLINE void LL_USART_DisableHalfDuplex(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2006 {
AnnaBridge 157:e7ca05fa8600 2007 CLEAR_BIT(USARTx->CR3, USART_CR3_HDSEL);
AnnaBridge 157:e7ca05fa8600 2008 }
AnnaBridge 157:e7ca05fa8600 2009
AnnaBridge 157:e7ca05fa8600 2010 /**
AnnaBridge 157:e7ca05fa8600 2011 * @brief Indicate if Single Wire Half-Duplex mode is enabled
AnnaBridge 157:e7ca05fa8600 2012 * @note Macro @ref IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2013 * Half-Duplex mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2014 * @rmtoll CR3 HDSEL LL_USART_IsEnabledHalfDuplex
AnnaBridge 157:e7ca05fa8600 2015 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2016 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2017 */
AnnaBridge 157:e7ca05fa8600 2018 __STATIC_INLINE uint32_t LL_USART_IsEnabledHalfDuplex(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2019 {
AnnaBridge 157:e7ca05fa8600 2020 return (READ_BIT(USARTx->CR3, USART_CR3_HDSEL) == (USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2021 }
AnnaBridge 157:e7ca05fa8600 2022
AnnaBridge 157:e7ca05fa8600 2023 /**
AnnaBridge 157:e7ca05fa8600 2024 * @}
AnnaBridge 157:e7ca05fa8600 2025 */
AnnaBridge 157:e7ca05fa8600 2026
AnnaBridge 157:e7ca05fa8600 2027 /** @defgroup USART_LL_EF_Configuration_LIN Configuration functions related to LIN feature
AnnaBridge 157:e7ca05fa8600 2028 * @{
AnnaBridge 157:e7ca05fa8600 2029 */
AnnaBridge 157:e7ca05fa8600 2030
AnnaBridge 157:e7ca05fa8600 2031 /**
AnnaBridge 157:e7ca05fa8600 2032 * @brief Set LIN Break Detection Length
AnnaBridge 157:e7ca05fa8600 2033 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2034 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2035 * @rmtoll CR2 LBDL LL_USART_SetLINBrkDetectionLen
AnnaBridge 157:e7ca05fa8600 2036 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2037 * @param LINBDLength This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 2038 * @arg @ref LL_USART_LINBREAK_DETECT_10B
AnnaBridge 157:e7ca05fa8600 2039 * @arg @ref LL_USART_LINBREAK_DETECT_11B
AnnaBridge 157:e7ca05fa8600 2040 * @retval None
AnnaBridge 157:e7ca05fa8600 2041 */
AnnaBridge 157:e7ca05fa8600 2042 __STATIC_INLINE void LL_USART_SetLINBrkDetectionLen(USART_TypeDef *USARTx, uint32_t LINBDLength)
AnnaBridge 157:e7ca05fa8600 2043 {
AnnaBridge 157:e7ca05fa8600 2044 MODIFY_REG(USARTx->CR2, USART_CR2_LBDL, LINBDLength);
AnnaBridge 157:e7ca05fa8600 2045 }
AnnaBridge 157:e7ca05fa8600 2046
AnnaBridge 157:e7ca05fa8600 2047 /**
AnnaBridge 157:e7ca05fa8600 2048 * @brief Return LIN Break Detection Length
AnnaBridge 157:e7ca05fa8600 2049 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2050 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2051 * @rmtoll CR2 LBDL LL_USART_GetLINBrkDetectionLen
AnnaBridge 157:e7ca05fa8600 2052 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2053 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 2054 * @arg @ref LL_USART_LINBREAK_DETECT_10B
AnnaBridge 157:e7ca05fa8600 2055 * @arg @ref LL_USART_LINBREAK_DETECT_11B
AnnaBridge 157:e7ca05fa8600 2056 */
AnnaBridge 157:e7ca05fa8600 2057 __STATIC_INLINE uint32_t LL_USART_GetLINBrkDetectionLen(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2058 {
AnnaBridge 157:e7ca05fa8600 2059 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBDL));
AnnaBridge 157:e7ca05fa8600 2060 }
AnnaBridge 157:e7ca05fa8600 2061
AnnaBridge 157:e7ca05fa8600 2062 /**
AnnaBridge 157:e7ca05fa8600 2063 * @brief Enable LIN mode
AnnaBridge 157:e7ca05fa8600 2064 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2065 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2066 * @rmtoll CR2 LINEN LL_USART_EnableLIN
AnnaBridge 157:e7ca05fa8600 2067 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2068 * @retval None
AnnaBridge 157:e7ca05fa8600 2069 */
AnnaBridge 157:e7ca05fa8600 2070 __STATIC_INLINE void LL_USART_EnableLIN(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2071 {
AnnaBridge 157:e7ca05fa8600 2072 SET_BIT(USARTx->CR2, USART_CR2_LINEN);
AnnaBridge 157:e7ca05fa8600 2073 }
AnnaBridge 157:e7ca05fa8600 2074
AnnaBridge 157:e7ca05fa8600 2075 /**
AnnaBridge 157:e7ca05fa8600 2076 * @brief Disable LIN mode
AnnaBridge 157:e7ca05fa8600 2077 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2078 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2079 * @rmtoll CR2 LINEN LL_USART_DisableLIN
AnnaBridge 157:e7ca05fa8600 2080 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2081 * @retval None
AnnaBridge 157:e7ca05fa8600 2082 */
AnnaBridge 157:e7ca05fa8600 2083 __STATIC_INLINE void LL_USART_DisableLIN(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2084 {
AnnaBridge 157:e7ca05fa8600 2085 CLEAR_BIT(USARTx->CR2, USART_CR2_LINEN);
AnnaBridge 157:e7ca05fa8600 2086 }
AnnaBridge 157:e7ca05fa8600 2087
AnnaBridge 157:e7ca05fa8600 2088 /**
AnnaBridge 157:e7ca05fa8600 2089 * @brief Indicate if LIN mode is enabled
AnnaBridge 157:e7ca05fa8600 2090 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2091 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2092 * @rmtoll CR2 LINEN LL_USART_IsEnabledLIN
AnnaBridge 157:e7ca05fa8600 2093 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2094 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2095 */
AnnaBridge 157:e7ca05fa8600 2096 __STATIC_INLINE uint32_t LL_USART_IsEnabledLIN(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2097 {
AnnaBridge 157:e7ca05fa8600 2098 return (READ_BIT(USARTx->CR2, USART_CR2_LINEN) == (USART_CR2_LINEN));
AnnaBridge 157:e7ca05fa8600 2099 }
AnnaBridge 157:e7ca05fa8600 2100
AnnaBridge 157:e7ca05fa8600 2101 /**
AnnaBridge 157:e7ca05fa8600 2102 * @}
AnnaBridge 157:e7ca05fa8600 2103 */
AnnaBridge 157:e7ca05fa8600 2104
AnnaBridge 157:e7ca05fa8600 2105 /** @defgroup USART_LL_EF_Configuration_DE Configuration functions related to Driver Enable feature
AnnaBridge 157:e7ca05fa8600 2106 * @{
AnnaBridge 157:e7ca05fa8600 2107 */
AnnaBridge 157:e7ca05fa8600 2108
AnnaBridge 157:e7ca05fa8600 2109 /**
AnnaBridge 157:e7ca05fa8600 2110 * @brief Set DEDT (Driver Enable De-Assertion Time), Time value expressed on 5 bits ([4:0] bits).
AnnaBridge 157:e7ca05fa8600 2111 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2112 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2113 * @rmtoll CR1 DEDT LL_USART_SetDEDeassertionTime
AnnaBridge 157:e7ca05fa8600 2114 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2115 * @param Time Value between Min_Data=0 and Max_Data=31
AnnaBridge 157:e7ca05fa8600 2116 * @retval None
AnnaBridge 157:e7ca05fa8600 2117 */
AnnaBridge 157:e7ca05fa8600 2118 __STATIC_INLINE void LL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time)
AnnaBridge 157:e7ca05fa8600 2119 {
AnnaBridge 157:e7ca05fa8600 2120 MODIFY_REG(USARTx->CR1, USART_CR1_DEDT, Time << USART_POSITION_CR1_DEDT);
AnnaBridge 157:e7ca05fa8600 2121 }
AnnaBridge 157:e7ca05fa8600 2122
AnnaBridge 157:e7ca05fa8600 2123 /**
AnnaBridge 157:e7ca05fa8600 2124 * @brief Return DEDT (Driver Enable De-Assertion Time)
AnnaBridge 157:e7ca05fa8600 2125 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2126 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2127 * @rmtoll CR1 DEDT LL_USART_GetDEDeassertionTime
AnnaBridge 157:e7ca05fa8600 2128 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2129 * @retval Time value expressed on 5 bits ([4:0] bits) : Value between Min_Data=0 and Max_Data=31
AnnaBridge 157:e7ca05fa8600 2130 */
AnnaBridge 157:e7ca05fa8600 2131 __STATIC_INLINE uint32_t LL_USART_GetDEDeassertionTime(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2132 {
AnnaBridge 157:e7ca05fa8600 2133 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEDT) >> USART_POSITION_CR1_DEDT);
AnnaBridge 157:e7ca05fa8600 2134 }
AnnaBridge 157:e7ca05fa8600 2135
AnnaBridge 157:e7ca05fa8600 2136 /**
AnnaBridge 157:e7ca05fa8600 2137 * @brief Set DEAT (Driver Enable Assertion Time), Time value expressed on 5 bits ([4:0] bits).
AnnaBridge 157:e7ca05fa8600 2138 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2139 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2140 * @rmtoll CR1 DEAT LL_USART_SetDEAssertionTime
AnnaBridge 157:e7ca05fa8600 2141 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2142 * @param Time Value between Min_Data=0 and Max_Data=31
AnnaBridge 157:e7ca05fa8600 2143 * @retval None
AnnaBridge 157:e7ca05fa8600 2144 */
AnnaBridge 157:e7ca05fa8600 2145 __STATIC_INLINE void LL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time)
AnnaBridge 157:e7ca05fa8600 2146 {
AnnaBridge 157:e7ca05fa8600 2147 MODIFY_REG(USARTx->CR1, USART_CR1_DEAT, Time << USART_POSITION_CR1_DEAT);
AnnaBridge 157:e7ca05fa8600 2148 }
AnnaBridge 157:e7ca05fa8600 2149
AnnaBridge 157:e7ca05fa8600 2150 /**
AnnaBridge 157:e7ca05fa8600 2151 * @brief Return DEAT (Driver Enable Assertion Time)
AnnaBridge 157:e7ca05fa8600 2152 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2153 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2154 * @rmtoll CR1 DEAT LL_USART_GetDEAssertionTime
AnnaBridge 157:e7ca05fa8600 2155 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2156 * @retval Time value expressed on 5 bits ([4:0] bits) : Value between Min_Data=0 and Max_Data=31
AnnaBridge 157:e7ca05fa8600 2157 */
AnnaBridge 157:e7ca05fa8600 2158 __STATIC_INLINE uint32_t LL_USART_GetDEAssertionTime(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2159 {
AnnaBridge 157:e7ca05fa8600 2160 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEAT) >> USART_POSITION_CR1_DEAT);
AnnaBridge 157:e7ca05fa8600 2161 }
AnnaBridge 157:e7ca05fa8600 2162
AnnaBridge 157:e7ca05fa8600 2163 /**
AnnaBridge 157:e7ca05fa8600 2164 * @brief Enable Driver Enable (DE) Mode
AnnaBridge 157:e7ca05fa8600 2165 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2166 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2167 * @rmtoll CR3 DEM LL_USART_EnableDEMode
AnnaBridge 157:e7ca05fa8600 2168 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2169 * @retval None
AnnaBridge 157:e7ca05fa8600 2170 */
AnnaBridge 157:e7ca05fa8600 2171 __STATIC_INLINE void LL_USART_EnableDEMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2172 {
AnnaBridge 157:e7ca05fa8600 2173 SET_BIT(USARTx->CR3, USART_CR3_DEM);
AnnaBridge 157:e7ca05fa8600 2174 }
AnnaBridge 157:e7ca05fa8600 2175
AnnaBridge 157:e7ca05fa8600 2176 /**
AnnaBridge 157:e7ca05fa8600 2177 * @brief Disable Driver Enable (DE) Mode
AnnaBridge 157:e7ca05fa8600 2178 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2179 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2180 * @rmtoll CR3 DEM LL_USART_DisableDEMode
AnnaBridge 157:e7ca05fa8600 2181 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2182 * @retval None
AnnaBridge 157:e7ca05fa8600 2183 */
AnnaBridge 157:e7ca05fa8600 2184 __STATIC_INLINE void LL_USART_DisableDEMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2185 {
AnnaBridge 157:e7ca05fa8600 2186 CLEAR_BIT(USARTx->CR3, USART_CR3_DEM);
AnnaBridge 157:e7ca05fa8600 2187 }
AnnaBridge 157:e7ca05fa8600 2188
AnnaBridge 157:e7ca05fa8600 2189 /**
AnnaBridge 157:e7ca05fa8600 2190 * @brief Indicate if Driver Enable (DE) Mode is enabled
AnnaBridge 157:e7ca05fa8600 2191 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2192 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2193 * @rmtoll CR3 DEM LL_USART_IsEnabledDEMode
AnnaBridge 157:e7ca05fa8600 2194 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2195 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2196 */
AnnaBridge 157:e7ca05fa8600 2197 __STATIC_INLINE uint32_t LL_USART_IsEnabledDEMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2198 {
AnnaBridge 157:e7ca05fa8600 2199 return (READ_BIT(USARTx->CR3, USART_CR3_DEM) == (USART_CR3_DEM));
AnnaBridge 157:e7ca05fa8600 2200 }
AnnaBridge 157:e7ca05fa8600 2201
AnnaBridge 157:e7ca05fa8600 2202 /**
AnnaBridge 157:e7ca05fa8600 2203 * @brief Select Driver Enable Polarity
AnnaBridge 157:e7ca05fa8600 2204 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2205 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2206 * @rmtoll CR3 DEP LL_USART_SetDESignalPolarity
AnnaBridge 157:e7ca05fa8600 2207 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2208 * @param Polarity This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 2209 * @arg @ref LL_USART_DE_POLARITY_HIGH
AnnaBridge 157:e7ca05fa8600 2210 * @arg @ref LL_USART_DE_POLARITY_LOW
AnnaBridge 157:e7ca05fa8600 2211 * @retval None
AnnaBridge 157:e7ca05fa8600 2212 */
AnnaBridge 157:e7ca05fa8600 2213 __STATIC_INLINE void LL_USART_SetDESignalPolarity(USART_TypeDef *USARTx, uint32_t Polarity)
AnnaBridge 157:e7ca05fa8600 2214 {
AnnaBridge 157:e7ca05fa8600 2215 MODIFY_REG(USARTx->CR3, USART_CR3_DEP, Polarity);
AnnaBridge 157:e7ca05fa8600 2216 }
AnnaBridge 157:e7ca05fa8600 2217
AnnaBridge 157:e7ca05fa8600 2218 /**
AnnaBridge 157:e7ca05fa8600 2219 * @brief Return Driver Enable Polarity
AnnaBridge 157:e7ca05fa8600 2220 * @note Macro @ref IS_UART_DRIVER_ENABLE_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2221 * Driver Enable feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2222 * @rmtoll CR3 DEP LL_USART_GetDESignalPolarity
AnnaBridge 157:e7ca05fa8600 2223 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2224 * @retval Returned value can be one of the following values:
AnnaBridge 157:e7ca05fa8600 2225 * @arg @ref LL_USART_DE_POLARITY_HIGH
AnnaBridge 157:e7ca05fa8600 2226 * @arg @ref LL_USART_DE_POLARITY_LOW
AnnaBridge 157:e7ca05fa8600 2227 */
AnnaBridge 157:e7ca05fa8600 2228 __STATIC_INLINE uint32_t LL_USART_GetDESignalPolarity(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2229 {
AnnaBridge 157:e7ca05fa8600 2230 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_DEP));
AnnaBridge 157:e7ca05fa8600 2231 }
AnnaBridge 157:e7ca05fa8600 2232
AnnaBridge 157:e7ca05fa8600 2233 /**
AnnaBridge 157:e7ca05fa8600 2234 * @}
AnnaBridge 157:e7ca05fa8600 2235 */
AnnaBridge 157:e7ca05fa8600 2236
AnnaBridge 157:e7ca05fa8600 2237 /** @defgroup USART_LL_EF_AdvancedConfiguration Advanced Configurations services
AnnaBridge 157:e7ca05fa8600 2238 * @{
AnnaBridge 157:e7ca05fa8600 2239 */
AnnaBridge 157:e7ca05fa8600 2240
AnnaBridge 157:e7ca05fa8600 2241 /**
AnnaBridge 157:e7ca05fa8600 2242 * @brief Perform basic configuration of USART for enabling use in Asynchronous Mode (UART)
AnnaBridge 157:e7ca05fa8600 2243 * @note In UART mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2244 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2245 * - CLKEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2246 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2247 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2248 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2249 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2250 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2251 * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2252 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2253 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2254 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2255 * @note Other remaining configurations items related to Asynchronous Mode
AnnaBridge 157:e7ca05fa8600 2256 * (as Baud Rate, Word length, Parity, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2257 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2258 * @rmtoll CR2 LINEN LL_USART_ConfigAsyncMode\n
AnnaBridge 157:e7ca05fa8600 2259 * CR2 CLKEN LL_USART_ConfigAsyncMode\n
AnnaBridge 157:e7ca05fa8600 2260 * CR3 SCEN LL_USART_ConfigAsyncMode\n
AnnaBridge 157:e7ca05fa8600 2261 * CR3 IREN LL_USART_ConfigAsyncMode\n
AnnaBridge 157:e7ca05fa8600 2262 * CR3 HDSEL LL_USART_ConfigAsyncMode
AnnaBridge 157:e7ca05fa8600 2263 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2264 * @retval None
AnnaBridge 157:e7ca05fa8600 2265 */
AnnaBridge 157:e7ca05fa8600 2266 __STATIC_INLINE void LL_USART_ConfigAsyncMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2267 {
AnnaBridge 157:e7ca05fa8600 2268 /* In Asynchronous mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2269 - LINEN, CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2270 - SCEN, IREN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2271 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
AnnaBridge 157:e7ca05fa8600 2272 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2273 }
AnnaBridge 157:e7ca05fa8600 2274
AnnaBridge 157:e7ca05fa8600 2275 /**
AnnaBridge 157:e7ca05fa8600 2276 * @brief Perform basic configuration of USART for enabling use in Synchronous Mode
AnnaBridge 157:e7ca05fa8600 2277 * @note In Synchronous mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2278 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2279 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2280 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2281 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2282 * This function also sets the USART in Synchronous mode.
AnnaBridge 157:e7ca05fa8600 2283 * @note Macro @ref IS_USART_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2284 * Synchronous mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2285 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2286 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2287 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2288 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2289 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2290 * - Set CLKEN in CR2 using @ref LL_USART_EnableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2291 * @note Other remaining configurations items related to Synchronous Mode
AnnaBridge 157:e7ca05fa8600 2292 * (as Baud Rate, Word length, Parity, Clock Polarity, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2293 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2294 * @rmtoll CR2 LINEN LL_USART_ConfigSyncMode\n
AnnaBridge 157:e7ca05fa8600 2295 * CR2 CLKEN LL_USART_ConfigSyncMode\n
AnnaBridge 157:e7ca05fa8600 2296 * CR3 SCEN LL_USART_ConfigSyncMode\n
AnnaBridge 157:e7ca05fa8600 2297 * CR3 IREN LL_USART_ConfigSyncMode\n
AnnaBridge 157:e7ca05fa8600 2298 * CR3 HDSEL LL_USART_ConfigSyncMode
AnnaBridge 157:e7ca05fa8600 2299 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2300 * @retval None
AnnaBridge 157:e7ca05fa8600 2301 */
AnnaBridge 157:e7ca05fa8600 2302 __STATIC_INLINE void LL_USART_ConfigSyncMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2303 {
AnnaBridge 157:e7ca05fa8600 2304 /* In Synchronous mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2305 - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2306 - SCEN, IREN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2307 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN));
AnnaBridge 157:e7ca05fa8600 2308 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2309 /* set the UART/USART in Synchronous mode */
AnnaBridge 157:e7ca05fa8600 2310 SET_BIT(USARTx->CR2, USART_CR2_CLKEN);
AnnaBridge 157:e7ca05fa8600 2311 }
AnnaBridge 157:e7ca05fa8600 2312
AnnaBridge 157:e7ca05fa8600 2313 /**
AnnaBridge 157:e7ca05fa8600 2314 * @brief Perform basic configuration of USART for enabling use in LIN Mode
AnnaBridge 157:e7ca05fa8600 2315 * @note In LIN mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2316 * - STOP and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2317 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2318 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2319 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2320 * This function also set the UART/USART in LIN mode.
AnnaBridge 157:e7ca05fa8600 2321 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2322 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2323 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2324 * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2325 * - Clear STOP in CR2 using @ref LL_USART_SetStopBitsLength() function
AnnaBridge 157:e7ca05fa8600 2326 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2327 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2328 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2329 * - Set LINEN in CR2 using @ref LL_USART_EnableLIN() function
AnnaBridge 157:e7ca05fa8600 2330 * @note Other remaining configurations items related to LIN Mode
AnnaBridge 157:e7ca05fa8600 2331 * (as Baud Rate, Word length, LIN Break Detection Length, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2332 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2333 * @rmtoll CR2 CLKEN LL_USART_ConfigLINMode\n
AnnaBridge 157:e7ca05fa8600 2334 * CR2 STOP LL_USART_ConfigLINMode\n
AnnaBridge 157:e7ca05fa8600 2335 * CR2 LINEN LL_USART_ConfigLINMode\n
AnnaBridge 157:e7ca05fa8600 2336 * CR3 IREN LL_USART_ConfigLINMode\n
AnnaBridge 157:e7ca05fa8600 2337 * CR3 SCEN LL_USART_ConfigLINMode\n
AnnaBridge 157:e7ca05fa8600 2338 * CR3 HDSEL LL_USART_ConfigLINMode
AnnaBridge 157:e7ca05fa8600 2339 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2340 * @retval None
AnnaBridge 157:e7ca05fa8600 2341 */
AnnaBridge 157:e7ca05fa8600 2342 __STATIC_INLINE void LL_USART_ConfigLINMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2343 {
AnnaBridge 157:e7ca05fa8600 2344 /* In LIN mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2345 - STOP and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2346 - IREN, SCEN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2347 CLEAR_BIT(USARTx->CR2, (USART_CR2_CLKEN | USART_CR2_STOP));
AnnaBridge 157:e7ca05fa8600 2348 CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_SCEN | USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2349 /* Set the UART/USART in LIN mode */
AnnaBridge 157:e7ca05fa8600 2350 SET_BIT(USARTx->CR2, USART_CR2_LINEN);
AnnaBridge 157:e7ca05fa8600 2351 }
AnnaBridge 157:e7ca05fa8600 2352
AnnaBridge 157:e7ca05fa8600 2353 /**
AnnaBridge 157:e7ca05fa8600 2354 * @brief Perform basic configuration of USART for enabling use in Half Duplex Mode
AnnaBridge 157:e7ca05fa8600 2355 * @note In Half Duplex mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2356 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2357 * - CLKEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2358 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2359 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2360 * This function also sets the UART/USART in Half Duplex mode.
AnnaBridge 157:e7ca05fa8600 2361 * @note Macro @ref IS_UART_HALFDUPLEX_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2362 * Half-Duplex mode is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2363 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2364 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2365 * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2366 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2367 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2368 * - Set HDSEL in CR3 using @ref LL_USART_EnableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2369 * @note Other remaining configurations items related to Half Duplex Mode
AnnaBridge 157:e7ca05fa8600 2370 * (as Baud Rate, Word length, Parity, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2371 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2372 * @rmtoll CR2 LINEN LL_USART_ConfigHalfDuplexMode\n
AnnaBridge 157:e7ca05fa8600 2373 * CR2 CLKEN LL_USART_ConfigHalfDuplexMode\n
AnnaBridge 157:e7ca05fa8600 2374 * CR3 HDSEL LL_USART_ConfigHalfDuplexMode\n
AnnaBridge 157:e7ca05fa8600 2375 * CR3 SCEN LL_USART_ConfigHalfDuplexMode\n
AnnaBridge 157:e7ca05fa8600 2376 * CR3 IREN LL_USART_ConfigHalfDuplexMode
AnnaBridge 157:e7ca05fa8600 2377 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2378 * @retval None
AnnaBridge 157:e7ca05fa8600 2379 */
AnnaBridge 157:e7ca05fa8600 2380 __STATIC_INLINE void LL_USART_ConfigHalfDuplexMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2381 {
AnnaBridge 157:e7ca05fa8600 2382 /* In Half Duplex mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2383 - LINEN and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2384 - SCEN and IREN bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2385 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
AnnaBridge 157:e7ca05fa8600 2386 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN));
AnnaBridge 157:e7ca05fa8600 2387 /* set the UART/USART in Half Duplex mode */
AnnaBridge 157:e7ca05fa8600 2388 SET_BIT(USARTx->CR3, USART_CR3_HDSEL);
AnnaBridge 157:e7ca05fa8600 2389 }
AnnaBridge 157:e7ca05fa8600 2390
AnnaBridge 157:e7ca05fa8600 2391 /**
AnnaBridge 157:e7ca05fa8600 2392 * @brief Perform basic configuration of USART for enabling use in Smartcard Mode
AnnaBridge 157:e7ca05fa8600 2393 * @note In Smartcard mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2394 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2395 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2396 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2397 * This function also configures Stop bits to 1.5 bits and
AnnaBridge 157:e7ca05fa8600 2398 * sets the USART in Smartcard mode (SCEN bit).
AnnaBridge 157:e7ca05fa8600 2399 * Clock Output is also enabled (CLKEN).
AnnaBridge 157:e7ca05fa8600 2400 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2401 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2402 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2403 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2404 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2405 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2406 * - Configure STOP in CR2 using @ref LL_USART_SetStopBitsLength() function
AnnaBridge 157:e7ca05fa8600 2407 * - Set CLKEN in CR2 using @ref LL_USART_EnableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2408 * - Set SCEN in CR3 using @ref LL_USART_EnableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2409 * @note Other remaining configurations items related to Smartcard Mode
AnnaBridge 157:e7ca05fa8600 2410 * (as Baud Rate, Word length, Parity, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2411 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2412 * @rmtoll CR2 LINEN LL_USART_ConfigSmartcardMode\n
AnnaBridge 157:e7ca05fa8600 2413 * CR2 STOP LL_USART_ConfigSmartcardMode\n
AnnaBridge 157:e7ca05fa8600 2414 * CR2 CLKEN LL_USART_ConfigSmartcardMode\n
AnnaBridge 157:e7ca05fa8600 2415 * CR3 HDSEL LL_USART_ConfigSmartcardMode\n
AnnaBridge 157:e7ca05fa8600 2416 * CR3 SCEN LL_USART_ConfigSmartcardMode
AnnaBridge 157:e7ca05fa8600 2417 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2418 * @retval None
AnnaBridge 157:e7ca05fa8600 2419 */
AnnaBridge 157:e7ca05fa8600 2420 __STATIC_INLINE void LL_USART_ConfigSmartcardMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2421 {
AnnaBridge 157:e7ca05fa8600 2422 /* In Smartcard mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2423 - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2424 - IREN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2425 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN));
AnnaBridge 157:e7ca05fa8600 2426 CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2427 /* Configure Stop bits to 1.5 bits */
AnnaBridge 157:e7ca05fa8600 2428 /* Synchronous mode is activated by default */
AnnaBridge 157:e7ca05fa8600 2429 SET_BIT(USARTx->CR2, (USART_CR2_STOP_0 | USART_CR2_STOP_1 | USART_CR2_CLKEN));
AnnaBridge 157:e7ca05fa8600 2430 /* set the UART/USART in Smartcard mode */
AnnaBridge 157:e7ca05fa8600 2431 SET_BIT(USARTx->CR3, USART_CR3_SCEN);
AnnaBridge 157:e7ca05fa8600 2432 }
AnnaBridge 157:e7ca05fa8600 2433
AnnaBridge 157:e7ca05fa8600 2434 /**
AnnaBridge 157:e7ca05fa8600 2435 * @brief Perform basic configuration of USART for enabling use in Irda Mode
AnnaBridge 157:e7ca05fa8600 2436 * @note In IRDA mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2437 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2438 * - STOP and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2439 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2440 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2441 * This function also sets the UART/USART in IRDA mode (IREN bit).
AnnaBridge 157:e7ca05fa8600 2442 * @note Macro @ref IS_IRDA_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2443 * IrDA feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2444 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2445 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2446 * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2447 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2448 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2449 * - Configure STOP in CR2 using @ref LL_USART_SetStopBitsLength() function
AnnaBridge 157:e7ca05fa8600 2450 * - Set IREN in CR3 using @ref LL_USART_EnableIrda() function
AnnaBridge 157:e7ca05fa8600 2451 * @note Other remaining configurations items related to Irda Mode
AnnaBridge 157:e7ca05fa8600 2452 * (as Baud Rate, Word length, Power mode, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2453 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2454 * @rmtoll CR2 LINEN LL_USART_ConfigIrdaMode\n
AnnaBridge 157:e7ca05fa8600 2455 * CR2 CLKEN LL_USART_ConfigIrdaMode\n
AnnaBridge 157:e7ca05fa8600 2456 * CR2 STOP LL_USART_ConfigIrdaMode\n
AnnaBridge 157:e7ca05fa8600 2457 * CR3 SCEN LL_USART_ConfigIrdaMode\n
AnnaBridge 157:e7ca05fa8600 2458 * CR3 HDSEL LL_USART_ConfigIrdaMode\n
AnnaBridge 157:e7ca05fa8600 2459 * CR3 IREN LL_USART_ConfigIrdaMode
AnnaBridge 157:e7ca05fa8600 2460 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2461 * @retval None
AnnaBridge 157:e7ca05fa8600 2462 */
AnnaBridge 157:e7ca05fa8600 2463 __STATIC_INLINE void LL_USART_ConfigIrdaMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2464 {
AnnaBridge 157:e7ca05fa8600 2465 /* In IRDA mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2466 - LINEN, STOP and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2467 - SCEN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2468 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN | USART_CR2_STOP));
AnnaBridge 157:e7ca05fa8600 2469 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL));
AnnaBridge 157:e7ca05fa8600 2470 /* set the UART/USART in IRDA mode */
AnnaBridge 157:e7ca05fa8600 2471 SET_BIT(USARTx->CR3, USART_CR3_IREN);
AnnaBridge 157:e7ca05fa8600 2472 }
AnnaBridge 157:e7ca05fa8600 2473
AnnaBridge 157:e7ca05fa8600 2474 /**
AnnaBridge 157:e7ca05fa8600 2475 * @brief Perform basic configuration of USART for enabling use in Multi processor Mode
AnnaBridge 157:e7ca05fa8600 2476 * (several USARTs connected in a network, one of the USARTs can be the master,
AnnaBridge 157:e7ca05fa8600 2477 * its TX output connected to the RX inputs of the other slaves USARTs).
AnnaBridge 157:e7ca05fa8600 2478 * @note In MultiProcessor mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2479 * - LINEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2480 * - CLKEN bit in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2481 * - SCEN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2482 * - IREN bit in the USART_CR3 register,
AnnaBridge 157:e7ca05fa8600 2483 * - HDSEL bit in the USART_CR3 register.
AnnaBridge 157:e7ca05fa8600 2484 * @note Call of this function is equivalent to following function call sequence :
AnnaBridge 157:e7ca05fa8600 2485 * - Clear LINEN in CR2 using @ref LL_USART_DisableLIN() function
AnnaBridge 157:e7ca05fa8600 2486 * - Clear CLKEN in CR2 using @ref LL_USART_DisableSCLKOutput() function
AnnaBridge 157:e7ca05fa8600 2487 * - Clear SCEN in CR3 using @ref LL_USART_DisableSmartcard() function
AnnaBridge 157:e7ca05fa8600 2488 * - Clear IREN in CR3 using @ref LL_USART_DisableIrda() function
AnnaBridge 157:e7ca05fa8600 2489 * - Clear HDSEL in CR3 using @ref LL_USART_DisableHalfDuplex() function
AnnaBridge 157:e7ca05fa8600 2490 * @note Other remaining configurations items related to Multi processor Mode
AnnaBridge 157:e7ca05fa8600 2491 * (as Baud Rate, Wake Up Method, Node address, ...) should be set using
AnnaBridge 157:e7ca05fa8600 2492 * dedicated functions
AnnaBridge 157:e7ca05fa8600 2493 * @rmtoll CR2 LINEN LL_USART_ConfigMultiProcessMode\n
AnnaBridge 157:e7ca05fa8600 2494 * CR2 CLKEN LL_USART_ConfigMultiProcessMode\n
AnnaBridge 157:e7ca05fa8600 2495 * CR3 SCEN LL_USART_ConfigMultiProcessMode\n
AnnaBridge 157:e7ca05fa8600 2496 * CR3 HDSEL LL_USART_ConfigMultiProcessMode\n
AnnaBridge 157:e7ca05fa8600 2497 * CR3 IREN LL_USART_ConfigMultiProcessMode
AnnaBridge 157:e7ca05fa8600 2498 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2499 * @retval None
AnnaBridge 157:e7ca05fa8600 2500 */
AnnaBridge 157:e7ca05fa8600 2501 __STATIC_INLINE void LL_USART_ConfigMultiProcessMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2502 {
AnnaBridge 157:e7ca05fa8600 2503 /* In Multi Processor mode, the following bits must be kept cleared:
AnnaBridge 157:e7ca05fa8600 2504 - LINEN and CLKEN bits in the USART_CR2 register,
AnnaBridge 157:e7ca05fa8600 2505 - IREN, SCEN and HDSEL bits in the USART_CR3 register.*/
AnnaBridge 157:e7ca05fa8600 2506 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
AnnaBridge 157:e7ca05fa8600 2507 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
AnnaBridge 157:e7ca05fa8600 2508 }
AnnaBridge 157:e7ca05fa8600 2509
AnnaBridge 157:e7ca05fa8600 2510 /**
AnnaBridge 157:e7ca05fa8600 2511 * @}
AnnaBridge 157:e7ca05fa8600 2512 */
AnnaBridge 157:e7ca05fa8600 2513
AnnaBridge 157:e7ca05fa8600 2514 /** @defgroup USART_LL_EF_FLAG_Management FLAG_Management
AnnaBridge 157:e7ca05fa8600 2515 * @{
AnnaBridge 157:e7ca05fa8600 2516 */
AnnaBridge 157:e7ca05fa8600 2517
AnnaBridge 157:e7ca05fa8600 2518 /**
AnnaBridge 157:e7ca05fa8600 2519 * @brief Check if the USART Parity Error Flag is set or not
AnnaBridge 157:e7ca05fa8600 2520 * @rmtoll ISR PE LL_USART_IsActiveFlag_PE
AnnaBridge 157:e7ca05fa8600 2521 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2522 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2523 */
AnnaBridge 157:e7ca05fa8600 2524 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_PE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2525 {
AnnaBridge 157:e7ca05fa8600 2526 return (READ_BIT(USARTx->ISR, USART_ISR_PE) == (USART_ISR_PE));
AnnaBridge 157:e7ca05fa8600 2527 }
AnnaBridge 157:e7ca05fa8600 2528
AnnaBridge 157:e7ca05fa8600 2529 /**
AnnaBridge 157:e7ca05fa8600 2530 * @brief Check if the USART Framing Error Flag is set or not
AnnaBridge 157:e7ca05fa8600 2531 * @rmtoll ISR FE LL_USART_IsActiveFlag_FE
AnnaBridge 157:e7ca05fa8600 2532 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2533 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2534 */
AnnaBridge 157:e7ca05fa8600 2535 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_FE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2536 {
AnnaBridge 157:e7ca05fa8600 2537 return (READ_BIT(USARTx->ISR, USART_ISR_FE) == (USART_ISR_FE));
AnnaBridge 157:e7ca05fa8600 2538 }
AnnaBridge 157:e7ca05fa8600 2539
AnnaBridge 157:e7ca05fa8600 2540 /**
AnnaBridge 157:e7ca05fa8600 2541 * @brief Check if the USART Noise error detected Flag is set or not
AnnaBridge 157:e7ca05fa8600 2542 * @rmtoll ISR NF LL_USART_IsActiveFlag_NE
AnnaBridge 157:e7ca05fa8600 2543 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2544 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2545 */
AnnaBridge 157:e7ca05fa8600 2546 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_NE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2547 {
AnnaBridge 157:e7ca05fa8600 2548 return (READ_BIT(USARTx->ISR, USART_ISR_NE) == (USART_ISR_NE));
AnnaBridge 157:e7ca05fa8600 2549 }
AnnaBridge 157:e7ca05fa8600 2550
AnnaBridge 157:e7ca05fa8600 2551 /**
AnnaBridge 157:e7ca05fa8600 2552 * @brief Check if the USART OverRun Error Flag is set or not
AnnaBridge 157:e7ca05fa8600 2553 * @rmtoll ISR ORE LL_USART_IsActiveFlag_ORE
AnnaBridge 157:e7ca05fa8600 2554 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2555 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2556 */
AnnaBridge 157:e7ca05fa8600 2557 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ORE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2558 {
AnnaBridge 157:e7ca05fa8600 2559 return (READ_BIT(USARTx->ISR, USART_ISR_ORE) == (USART_ISR_ORE));
AnnaBridge 157:e7ca05fa8600 2560 }
AnnaBridge 157:e7ca05fa8600 2561
AnnaBridge 157:e7ca05fa8600 2562 /**
AnnaBridge 157:e7ca05fa8600 2563 * @brief Check if the USART IDLE line detected Flag is set or not
AnnaBridge 157:e7ca05fa8600 2564 * @rmtoll ISR IDLE LL_USART_IsActiveFlag_IDLE
AnnaBridge 157:e7ca05fa8600 2565 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2566 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2567 */
AnnaBridge 157:e7ca05fa8600 2568 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_IDLE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2569 {
AnnaBridge 157:e7ca05fa8600 2570 return (READ_BIT(USARTx->ISR, USART_ISR_IDLE) == (USART_ISR_IDLE));
AnnaBridge 157:e7ca05fa8600 2571 }
AnnaBridge 157:e7ca05fa8600 2572
AnnaBridge 157:e7ca05fa8600 2573 /**
AnnaBridge 157:e7ca05fa8600 2574 * @brief Check if the USART Read Data Register Not Empty Flag is set or not
AnnaBridge 157:e7ca05fa8600 2575 * @rmtoll ISR RXNE LL_USART_IsActiveFlag_RXNE
AnnaBridge 157:e7ca05fa8600 2576 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2577 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2578 */
AnnaBridge 157:e7ca05fa8600 2579 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXNE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2580 {
AnnaBridge 157:e7ca05fa8600 2581 return (READ_BIT(USARTx->ISR, USART_ISR_RXNE) == (USART_ISR_RXNE));
AnnaBridge 157:e7ca05fa8600 2582 }
AnnaBridge 157:e7ca05fa8600 2583
AnnaBridge 157:e7ca05fa8600 2584 /**
AnnaBridge 157:e7ca05fa8600 2585 * @brief Check if the USART Transmission Complete Flag is set or not
AnnaBridge 157:e7ca05fa8600 2586 * @rmtoll ISR TC LL_USART_IsActiveFlag_TC
AnnaBridge 157:e7ca05fa8600 2587 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2588 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2589 */
AnnaBridge 157:e7ca05fa8600 2590 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TC(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2591 {
AnnaBridge 157:e7ca05fa8600 2592 return (READ_BIT(USARTx->ISR, USART_ISR_TC) == (USART_ISR_TC));
AnnaBridge 157:e7ca05fa8600 2593 }
AnnaBridge 157:e7ca05fa8600 2594
AnnaBridge 157:e7ca05fa8600 2595 /**
AnnaBridge 157:e7ca05fa8600 2596 * @brief Check if the USART Transmit Data Register Empty Flag is set or not
AnnaBridge 157:e7ca05fa8600 2597 * @rmtoll ISR TXE LL_USART_IsActiveFlag_TXE
AnnaBridge 157:e7ca05fa8600 2598 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2599 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2600 */
AnnaBridge 157:e7ca05fa8600 2601 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2602 {
AnnaBridge 157:e7ca05fa8600 2603 return (READ_BIT(USARTx->ISR, USART_ISR_TXE) == (USART_ISR_TXE));
AnnaBridge 157:e7ca05fa8600 2604 }
AnnaBridge 157:e7ca05fa8600 2605
AnnaBridge 157:e7ca05fa8600 2606 /**
AnnaBridge 157:e7ca05fa8600 2607 * @brief Check if the USART LIN Break Detection Flag is set or not
AnnaBridge 157:e7ca05fa8600 2608 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2609 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2610 * @rmtoll ISR LBDF LL_USART_IsActiveFlag_LBD
AnnaBridge 157:e7ca05fa8600 2611 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2612 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2613 */
AnnaBridge 157:e7ca05fa8600 2614 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_LBD(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2615 {
AnnaBridge 157:e7ca05fa8600 2616 return (READ_BIT(USARTx->ISR, USART_ISR_LBDF) == (USART_ISR_LBDF));
AnnaBridge 157:e7ca05fa8600 2617 }
AnnaBridge 157:e7ca05fa8600 2618
AnnaBridge 157:e7ca05fa8600 2619 /**
AnnaBridge 157:e7ca05fa8600 2620 * @brief Check if the USART CTS interrupt Flag is set or not
AnnaBridge 157:e7ca05fa8600 2621 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2622 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2623 * @rmtoll ISR CTSIF LL_USART_IsActiveFlag_nCTS
AnnaBridge 157:e7ca05fa8600 2624 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2625 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2626 */
AnnaBridge 157:e7ca05fa8600 2627 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_nCTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2628 {
AnnaBridge 157:e7ca05fa8600 2629 return (READ_BIT(USARTx->ISR, USART_ISR_CTSIF) == (USART_ISR_CTSIF));
AnnaBridge 157:e7ca05fa8600 2630 }
AnnaBridge 157:e7ca05fa8600 2631
AnnaBridge 157:e7ca05fa8600 2632 /**
AnnaBridge 157:e7ca05fa8600 2633 * @brief Check if the USART CTS Flag is set or not
AnnaBridge 157:e7ca05fa8600 2634 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2635 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2636 * @rmtoll ISR CTS LL_USART_IsActiveFlag_CTS
AnnaBridge 157:e7ca05fa8600 2637 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2638 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2639 */
AnnaBridge 157:e7ca05fa8600 2640 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2641 {
AnnaBridge 157:e7ca05fa8600 2642 return (READ_BIT(USARTx->ISR, USART_ISR_CTS) == (USART_ISR_CTS));
AnnaBridge 157:e7ca05fa8600 2643 }
AnnaBridge 157:e7ca05fa8600 2644
AnnaBridge 157:e7ca05fa8600 2645 /**
AnnaBridge 157:e7ca05fa8600 2646 * @brief Check if the USART Receiver Time Out Flag is set or not
AnnaBridge 157:e7ca05fa8600 2647 * @rmtoll ISR RTOF LL_USART_IsActiveFlag_RTO
AnnaBridge 157:e7ca05fa8600 2648 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2649 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2650 */
AnnaBridge 157:e7ca05fa8600 2651 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RTO(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2652 {
AnnaBridge 157:e7ca05fa8600 2653 return (READ_BIT(USARTx->ISR, USART_ISR_RTOF) == (USART_ISR_RTOF));
AnnaBridge 157:e7ca05fa8600 2654 }
AnnaBridge 157:e7ca05fa8600 2655
AnnaBridge 157:e7ca05fa8600 2656 /**
AnnaBridge 157:e7ca05fa8600 2657 * @brief Check if the USART End Of Block Flag is set or not
AnnaBridge 157:e7ca05fa8600 2658 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2659 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2660 * @rmtoll ISR EOBF LL_USART_IsActiveFlag_EOB
AnnaBridge 157:e7ca05fa8600 2661 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2662 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2663 */
AnnaBridge 157:e7ca05fa8600 2664 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_EOB(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2665 {
AnnaBridge 157:e7ca05fa8600 2666 return (READ_BIT(USARTx->ISR, USART_ISR_EOBF) == (USART_ISR_EOBF));
AnnaBridge 157:e7ca05fa8600 2667 }
AnnaBridge 157:e7ca05fa8600 2668
AnnaBridge 157:e7ca05fa8600 2669 /**
AnnaBridge 157:e7ca05fa8600 2670 * @brief Check if the USART Auto-Baud Rate Error Flag is set or not
AnnaBridge 157:e7ca05fa8600 2671 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2672 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2673 * @rmtoll ISR ABRE LL_USART_IsActiveFlag_ABRE
AnnaBridge 157:e7ca05fa8600 2674 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2675 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2676 */
AnnaBridge 157:e7ca05fa8600 2677 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABRE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2678 {
AnnaBridge 157:e7ca05fa8600 2679 return (READ_BIT(USARTx->ISR, USART_ISR_ABRE) == (USART_ISR_ABRE));
AnnaBridge 157:e7ca05fa8600 2680 }
AnnaBridge 157:e7ca05fa8600 2681
AnnaBridge 157:e7ca05fa8600 2682 /**
AnnaBridge 157:e7ca05fa8600 2683 * @brief Check if the USART Auto-Baud Rate Flag is set or not
AnnaBridge 157:e7ca05fa8600 2684 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2685 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2686 * @rmtoll ISR ABRF LL_USART_IsActiveFlag_ABR
AnnaBridge 157:e7ca05fa8600 2687 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2688 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2689 */
AnnaBridge 157:e7ca05fa8600 2690 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABR(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2691 {
AnnaBridge 157:e7ca05fa8600 2692 return (READ_BIT(USARTx->ISR, USART_ISR_ABRF) == (USART_ISR_ABRF));
AnnaBridge 157:e7ca05fa8600 2693 }
AnnaBridge 157:e7ca05fa8600 2694
AnnaBridge 157:e7ca05fa8600 2695 /**
AnnaBridge 157:e7ca05fa8600 2696 * @brief Check if the USART Busy Flag is set or not
AnnaBridge 157:e7ca05fa8600 2697 * @rmtoll ISR BUSY LL_USART_IsActiveFlag_BUSY
AnnaBridge 157:e7ca05fa8600 2698 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2699 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2700 */
AnnaBridge 157:e7ca05fa8600 2701 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_BUSY(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2702 {
AnnaBridge 157:e7ca05fa8600 2703 return (READ_BIT(USARTx->ISR, USART_ISR_BUSY) == (USART_ISR_BUSY));
AnnaBridge 157:e7ca05fa8600 2704 }
AnnaBridge 157:e7ca05fa8600 2705
AnnaBridge 157:e7ca05fa8600 2706 /**
AnnaBridge 157:e7ca05fa8600 2707 * @brief Check if the USART Character Match Flag is set or not
AnnaBridge 157:e7ca05fa8600 2708 * @rmtoll ISR CMF LL_USART_IsActiveFlag_CM
AnnaBridge 157:e7ca05fa8600 2709 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2710 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2711 */
AnnaBridge 157:e7ca05fa8600 2712 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CM(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2713 {
AnnaBridge 157:e7ca05fa8600 2714 return (READ_BIT(USARTx->ISR, USART_ISR_CMF) == (USART_ISR_CMF));
AnnaBridge 157:e7ca05fa8600 2715 }
AnnaBridge 157:e7ca05fa8600 2716
AnnaBridge 157:e7ca05fa8600 2717 /**
AnnaBridge 157:e7ca05fa8600 2718 * @brief Check if the USART Send Break Flag is set or not
AnnaBridge 157:e7ca05fa8600 2719 * @rmtoll ISR SBKF LL_USART_IsActiveFlag_SBK
AnnaBridge 157:e7ca05fa8600 2720 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2721 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2722 */
AnnaBridge 157:e7ca05fa8600 2723 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_SBK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2724 {
AnnaBridge 157:e7ca05fa8600 2725 return (READ_BIT(USARTx->ISR, USART_ISR_SBKF) == (USART_ISR_SBKF));
AnnaBridge 157:e7ca05fa8600 2726 }
AnnaBridge 157:e7ca05fa8600 2727
AnnaBridge 157:e7ca05fa8600 2728 /**
AnnaBridge 157:e7ca05fa8600 2729 * @brief Check if the USART Receive Wake Up from mute mode Flag is set or not
AnnaBridge 157:e7ca05fa8600 2730 * @rmtoll ISR RWU LL_USART_IsActiveFlag_RWU
AnnaBridge 157:e7ca05fa8600 2731 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2732 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2733 */
AnnaBridge 157:e7ca05fa8600 2734 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RWU(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2735 {
AnnaBridge 157:e7ca05fa8600 2736 return (READ_BIT(USARTx->ISR, USART_ISR_RWU) == (USART_ISR_RWU));
AnnaBridge 157:e7ca05fa8600 2737 }
AnnaBridge 157:e7ca05fa8600 2738
AnnaBridge 157:e7ca05fa8600 2739 /**
AnnaBridge 157:e7ca05fa8600 2740 * @brief Check if the USART Wake Up from stop mode Flag is set or not
AnnaBridge 157:e7ca05fa8600 2741 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2742 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2743 * @rmtoll ISR WUF LL_USART_IsActiveFlag_WKUP
AnnaBridge 157:e7ca05fa8600 2744 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2745 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2746 */
AnnaBridge 157:e7ca05fa8600 2747 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_WKUP(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2748 {
AnnaBridge 157:e7ca05fa8600 2749 return (READ_BIT(USARTx->ISR, USART_ISR_WUF) == (USART_ISR_WUF));
AnnaBridge 157:e7ca05fa8600 2750 }
AnnaBridge 157:e7ca05fa8600 2751
AnnaBridge 157:e7ca05fa8600 2752 /**
AnnaBridge 157:e7ca05fa8600 2753 * @brief Check if the USART Transmit Enable Acknowledge Flag is set or not
AnnaBridge 157:e7ca05fa8600 2754 * @rmtoll ISR TEACK LL_USART_IsActiveFlag_TEACK
AnnaBridge 157:e7ca05fa8600 2755 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2756 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2757 */
AnnaBridge 157:e7ca05fa8600 2758 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TEACK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2759 {
AnnaBridge 157:e7ca05fa8600 2760 return (READ_BIT(USARTx->ISR, USART_ISR_TEACK) == (USART_ISR_TEACK));
AnnaBridge 157:e7ca05fa8600 2761 }
AnnaBridge 157:e7ca05fa8600 2762
AnnaBridge 157:e7ca05fa8600 2763 /**
AnnaBridge 157:e7ca05fa8600 2764 * @brief Check if the USART Receive Enable Acknowledge Flag is set or not
AnnaBridge 157:e7ca05fa8600 2765 * @rmtoll ISR REACK LL_USART_IsActiveFlag_REACK
AnnaBridge 157:e7ca05fa8600 2766 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2767 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2768 */
AnnaBridge 157:e7ca05fa8600 2769 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_REACK(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2770 {
AnnaBridge 157:e7ca05fa8600 2771 return (READ_BIT(USARTx->ISR, USART_ISR_REACK) == (USART_ISR_REACK));
AnnaBridge 157:e7ca05fa8600 2772 }
AnnaBridge 157:e7ca05fa8600 2773
AnnaBridge 157:e7ca05fa8600 2774 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 2775 /* Function available only on devices supporting Transmit Complete before Guard Time feature */
AnnaBridge 157:e7ca05fa8600 2776 /**
AnnaBridge 157:e7ca05fa8600 2777 * @brief Check if the Smartcard Transmission Complete Before Guard Time Flag is set or not
AnnaBridge 157:e7ca05fa8600 2778 * @rmtoll ISR TCBGT LL_USART_IsActiveFlag_TCBGT
AnnaBridge 157:e7ca05fa8600 2779 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2780 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 2781 */
AnnaBridge 157:e7ca05fa8600 2782 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TCBGT(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2783 {
AnnaBridge 157:e7ca05fa8600 2784 return (READ_BIT(USARTx->ISR, USART_ISR_TCBGT) == (USART_ISR_TCBGT));
AnnaBridge 157:e7ca05fa8600 2785 }
AnnaBridge 157:e7ca05fa8600 2786 #endif
AnnaBridge 157:e7ca05fa8600 2787
AnnaBridge 157:e7ca05fa8600 2788 /**
AnnaBridge 157:e7ca05fa8600 2789 * @brief Clear Parity Error Flag
AnnaBridge 157:e7ca05fa8600 2790 * @rmtoll ICR PECF LL_USART_ClearFlag_PE
AnnaBridge 157:e7ca05fa8600 2791 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2792 * @retval None
AnnaBridge 157:e7ca05fa8600 2793 */
AnnaBridge 157:e7ca05fa8600 2794 __STATIC_INLINE void LL_USART_ClearFlag_PE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2795 {
AnnaBridge 157:e7ca05fa8600 2796 WRITE_REG(USARTx->ICR, USART_ICR_PECF);
AnnaBridge 157:e7ca05fa8600 2797 }
AnnaBridge 157:e7ca05fa8600 2798
AnnaBridge 157:e7ca05fa8600 2799 /**
AnnaBridge 157:e7ca05fa8600 2800 * @brief Clear Framing Error Flag
AnnaBridge 157:e7ca05fa8600 2801 * @rmtoll ICR FECF LL_USART_ClearFlag_FE
AnnaBridge 157:e7ca05fa8600 2802 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2803 * @retval None
AnnaBridge 157:e7ca05fa8600 2804 */
AnnaBridge 157:e7ca05fa8600 2805 __STATIC_INLINE void LL_USART_ClearFlag_FE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2806 {
AnnaBridge 157:e7ca05fa8600 2807 WRITE_REG(USARTx->ICR, USART_ICR_FECF);
AnnaBridge 157:e7ca05fa8600 2808 }
AnnaBridge 157:e7ca05fa8600 2809
AnnaBridge 157:e7ca05fa8600 2810 /**
AnnaBridge 157:e7ca05fa8600 2811 * @brief Clear Noise detected Flag
AnnaBridge 157:e7ca05fa8600 2812 * @rmtoll ICR NCF LL_USART_ClearFlag_NE
AnnaBridge 157:e7ca05fa8600 2813 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2814 * @retval None
AnnaBridge 157:e7ca05fa8600 2815 */
AnnaBridge 157:e7ca05fa8600 2816 __STATIC_INLINE void LL_USART_ClearFlag_NE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2817 {
AnnaBridge 157:e7ca05fa8600 2818 WRITE_REG(USARTx->ICR, USART_ICR_NCF);
AnnaBridge 157:e7ca05fa8600 2819 }
AnnaBridge 157:e7ca05fa8600 2820
AnnaBridge 157:e7ca05fa8600 2821 /**
AnnaBridge 157:e7ca05fa8600 2822 * @brief Clear OverRun Error Flag
AnnaBridge 157:e7ca05fa8600 2823 * @rmtoll ICR ORECF LL_USART_ClearFlag_ORE
AnnaBridge 157:e7ca05fa8600 2824 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2825 * @retval None
AnnaBridge 157:e7ca05fa8600 2826 */
AnnaBridge 157:e7ca05fa8600 2827 __STATIC_INLINE void LL_USART_ClearFlag_ORE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2828 {
AnnaBridge 157:e7ca05fa8600 2829 WRITE_REG(USARTx->ICR, USART_ICR_ORECF);
AnnaBridge 157:e7ca05fa8600 2830 }
AnnaBridge 157:e7ca05fa8600 2831
AnnaBridge 157:e7ca05fa8600 2832 /**
AnnaBridge 157:e7ca05fa8600 2833 * @brief Clear IDLE line detected Flag
AnnaBridge 157:e7ca05fa8600 2834 * @rmtoll ICR IDLECF LL_USART_ClearFlag_IDLE
AnnaBridge 157:e7ca05fa8600 2835 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2836 * @retval None
AnnaBridge 157:e7ca05fa8600 2837 */
AnnaBridge 157:e7ca05fa8600 2838 __STATIC_INLINE void LL_USART_ClearFlag_IDLE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2839 {
AnnaBridge 157:e7ca05fa8600 2840 WRITE_REG(USARTx->ICR, USART_ICR_IDLECF);
AnnaBridge 157:e7ca05fa8600 2841 }
AnnaBridge 157:e7ca05fa8600 2842
AnnaBridge 157:e7ca05fa8600 2843 /**
AnnaBridge 157:e7ca05fa8600 2844 * @brief Clear Transmission Complete Flag
AnnaBridge 157:e7ca05fa8600 2845 * @rmtoll ICR TCCF LL_USART_ClearFlag_TC
AnnaBridge 157:e7ca05fa8600 2846 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2847 * @retval None
AnnaBridge 157:e7ca05fa8600 2848 */
AnnaBridge 157:e7ca05fa8600 2849 __STATIC_INLINE void LL_USART_ClearFlag_TC(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2850 {
AnnaBridge 157:e7ca05fa8600 2851 WRITE_REG(USARTx->ICR, USART_ICR_TCCF);
AnnaBridge 157:e7ca05fa8600 2852 }
AnnaBridge 157:e7ca05fa8600 2853
AnnaBridge 157:e7ca05fa8600 2854 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 2855 /* Function available only on devices supporting Transmit Complete before Guard Time feature */
AnnaBridge 157:e7ca05fa8600 2856 /**
AnnaBridge 157:e7ca05fa8600 2857 * @brief Clear Smartcard Transmission Complete Before Guard Time Flag
AnnaBridge 157:e7ca05fa8600 2858 * @rmtoll ICR TCBGTCF LL_USART_ClearFlag_TCBGT
AnnaBridge 157:e7ca05fa8600 2859 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2860 * @retval None
AnnaBridge 157:e7ca05fa8600 2861 */
AnnaBridge 157:e7ca05fa8600 2862 __STATIC_INLINE void LL_USART_ClearFlag_TCBGT(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2863 {
AnnaBridge 157:e7ca05fa8600 2864 WRITE_REG(USARTx->ICR, USART_ICR_TCBGTCF);
AnnaBridge 157:e7ca05fa8600 2865 }
AnnaBridge 157:e7ca05fa8600 2866 #endif
AnnaBridge 157:e7ca05fa8600 2867
AnnaBridge 157:e7ca05fa8600 2868 /**
AnnaBridge 157:e7ca05fa8600 2869 * @brief Clear LIN Break Detection Flag
AnnaBridge 157:e7ca05fa8600 2870 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2871 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2872 * @rmtoll ICR LBDCF LL_USART_ClearFlag_LBD
AnnaBridge 157:e7ca05fa8600 2873 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2874 * @retval None
AnnaBridge 157:e7ca05fa8600 2875 */
AnnaBridge 157:e7ca05fa8600 2876 __STATIC_INLINE void LL_USART_ClearFlag_LBD(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2877 {
AnnaBridge 157:e7ca05fa8600 2878 WRITE_REG(USARTx->ICR, USART_ICR_LBDCF);
AnnaBridge 157:e7ca05fa8600 2879 }
AnnaBridge 157:e7ca05fa8600 2880
AnnaBridge 157:e7ca05fa8600 2881 /**
AnnaBridge 157:e7ca05fa8600 2882 * @brief Clear CTS Interrupt Flag
AnnaBridge 157:e7ca05fa8600 2883 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2884 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2885 * @rmtoll ICR CTSCF LL_USART_ClearFlag_nCTS
AnnaBridge 157:e7ca05fa8600 2886 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2887 * @retval None
AnnaBridge 157:e7ca05fa8600 2888 */
AnnaBridge 157:e7ca05fa8600 2889 __STATIC_INLINE void LL_USART_ClearFlag_nCTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2890 {
AnnaBridge 157:e7ca05fa8600 2891 WRITE_REG(USARTx->ICR, USART_ICR_CTSCF);
AnnaBridge 157:e7ca05fa8600 2892 }
AnnaBridge 157:e7ca05fa8600 2893
AnnaBridge 157:e7ca05fa8600 2894 /**
AnnaBridge 157:e7ca05fa8600 2895 * @brief Clear Receiver Time Out Flag
AnnaBridge 157:e7ca05fa8600 2896 * @rmtoll ICR RTOCF LL_USART_ClearFlag_RTO
AnnaBridge 157:e7ca05fa8600 2897 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2898 * @retval None
AnnaBridge 157:e7ca05fa8600 2899 */
AnnaBridge 157:e7ca05fa8600 2900 __STATIC_INLINE void LL_USART_ClearFlag_RTO(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2901 {
AnnaBridge 157:e7ca05fa8600 2902 WRITE_REG(USARTx->ICR, USART_ICR_RTOCF);
AnnaBridge 157:e7ca05fa8600 2903 }
AnnaBridge 157:e7ca05fa8600 2904
AnnaBridge 157:e7ca05fa8600 2905 /**
AnnaBridge 157:e7ca05fa8600 2906 * @brief Clear End Of Block Flag
AnnaBridge 157:e7ca05fa8600 2907 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2908 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2909 * @rmtoll ICR EOBCF LL_USART_ClearFlag_EOB
AnnaBridge 157:e7ca05fa8600 2910 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2911 * @retval None
AnnaBridge 157:e7ca05fa8600 2912 */
AnnaBridge 157:e7ca05fa8600 2913 __STATIC_INLINE void LL_USART_ClearFlag_EOB(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2914 {
AnnaBridge 157:e7ca05fa8600 2915 WRITE_REG(USARTx->ICR, USART_ICR_EOBCF);
AnnaBridge 157:e7ca05fa8600 2916 }
AnnaBridge 157:e7ca05fa8600 2917
AnnaBridge 157:e7ca05fa8600 2918 /**
AnnaBridge 157:e7ca05fa8600 2919 * @brief Clear Character Match Flag
AnnaBridge 157:e7ca05fa8600 2920 * @rmtoll ICR CMCF LL_USART_ClearFlag_CM
AnnaBridge 157:e7ca05fa8600 2921 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2922 * @retval None
AnnaBridge 157:e7ca05fa8600 2923 */
AnnaBridge 157:e7ca05fa8600 2924 __STATIC_INLINE void LL_USART_ClearFlag_CM(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2925 {
AnnaBridge 157:e7ca05fa8600 2926 WRITE_REG(USARTx->ICR, USART_ICR_CMCF);
AnnaBridge 157:e7ca05fa8600 2927 }
AnnaBridge 157:e7ca05fa8600 2928
AnnaBridge 157:e7ca05fa8600 2929 /**
AnnaBridge 157:e7ca05fa8600 2930 * @brief Clear Wake Up from stop mode Flag
AnnaBridge 157:e7ca05fa8600 2931 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 2932 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 2933 * @rmtoll ICR WUCF LL_USART_ClearFlag_WKUP
AnnaBridge 157:e7ca05fa8600 2934 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2935 * @retval None
AnnaBridge 157:e7ca05fa8600 2936 */
AnnaBridge 157:e7ca05fa8600 2937 __STATIC_INLINE void LL_USART_ClearFlag_WKUP(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2938 {
AnnaBridge 157:e7ca05fa8600 2939 WRITE_REG(USARTx->ICR, USART_ICR_WUCF);
AnnaBridge 157:e7ca05fa8600 2940 }
AnnaBridge 157:e7ca05fa8600 2941
AnnaBridge 157:e7ca05fa8600 2942 /**
AnnaBridge 157:e7ca05fa8600 2943 * @}
AnnaBridge 157:e7ca05fa8600 2944 */
AnnaBridge 157:e7ca05fa8600 2945
AnnaBridge 157:e7ca05fa8600 2946 /** @defgroup USART_LL_EF_IT_Management IT_Management
AnnaBridge 157:e7ca05fa8600 2947 * @{
AnnaBridge 157:e7ca05fa8600 2948 */
AnnaBridge 157:e7ca05fa8600 2949
AnnaBridge 157:e7ca05fa8600 2950 /**
AnnaBridge 157:e7ca05fa8600 2951 * @brief Enable IDLE Interrupt
AnnaBridge 157:e7ca05fa8600 2952 * @rmtoll CR1 IDLEIE LL_USART_EnableIT_IDLE
AnnaBridge 157:e7ca05fa8600 2953 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2954 * @retval None
AnnaBridge 157:e7ca05fa8600 2955 */
AnnaBridge 157:e7ca05fa8600 2956 __STATIC_INLINE void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2957 {
AnnaBridge 157:e7ca05fa8600 2958 SET_BIT(USARTx->CR1, USART_CR1_IDLEIE);
AnnaBridge 157:e7ca05fa8600 2959 }
AnnaBridge 157:e7ca05fa8600 2960
AnnaBridge 157:e7ca05fa8600 2961 /**
AnnaBridge 157:e7ca05fa8600 2962 * @brief Enable RX Not Empty Interrupt
AnnaBridge 157:e7ca05fa8600 2963 * @rmtoll CR1 RXNEIE LL_USART_EnableIT_RXNE
AnnaBridge 157:e7ca05fa8600 2964 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2965 * @retval None
AnnaBridge 157:e7ca05fa8600 2966 */
AnnaBridge 157:e7ca05fa8600 2967 __STATIC_INLINE void LL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2968 {
AnnaBridge 157:e7ca05fa8600 2969 SET_BIT(USARTx->CR1, USART_CR1_RXNEIE);
AnnaBridge 157:e7ca05fa8600 2970 }
AnnaBridge 157:e7ca05fa8600 2971
AnnaBridge 157:e7ca05fa8600 2972 /**
AnnaBridge 157:e7ca05fa8600 2973 * @brief Enable Transmission Complete Interrupt
AnnaBridge 157:e7ca05fa8600 2974 * @rmtoll CR1 TCIE LL_USART_EnableIT_TC
AnnaBridge 157:e7ca05fa8600 2975 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2976 * @retval None
AnnaBridge 157:e7ca05fa8600 2977 */
AnnaBridge 157:e7ca05fa8600 2978 __STATIC_INLINE void LL_USART_EnableIT_TC(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2979 {
AnnaBridge 157:e7ca05fa8600 2980 SET_BIT(USARTx->CR1, USART_CR1_TCIE);
AnnaBridge 157:e7ca05fa8600 2981 }
AnnaBridge 157:e7ca05fa8600 2982
AnnaBridge 157:e7ca05fa8600 2983 /**
AnnaBridge 157:e7ca05fa8600 2984 * @brief Enable TX Empty Interrupt
AnnaBridge 157:e7ca05fa8600 2985 * @rmtoll CR1 TXEIE LL_USART_EnableIT_TXE
AnnaBridge 157:e7ca05fa8600 2986 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2987 * @retval None
AnnaBridge 157:e7ca05fa8600 2988 */
AnnaBridge 157:e7ca05fa8600 2989 __STATIC_INLINE void LL_USART_EnableIT_TXE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 2990 {
AnnaBridge 157:e7ca05fa8600 2991 SET_BIT(USARTx->CR1, USART_CR1_TXEIE);
AnnaBridge 157:e7ca05fa8600 2992 }
AnnaBridge 157:e7ca05fa8600 2993
AnnaBridge 157:e7ca05fa8600 2994 /**
AnnaBridge 157:e7ca05fa8600 2995 * @brief Enable Parity Error Interrupt
AnnaBridge 157:e7ca05fa8600 2996 * @rmtoll CR1 PEIE LL_USART_EnableIT_PE
AnnaBridge 157:e7ca05fa8600 2997 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 2998 * @retval None
AnnaBridge 157:e7ca05fa8600 2999 */
AnnaBridge 157:e7ca05fa8600 3000 __STATIC_INLINE void LL_USART_EnableIT_PE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3001 {
AnnaBridge 157:e7ca05fa8600 3002 SET_BIT(USARTx->CR1, USART_CR1_PEIE);
AnnaBridge 157:e7ca05fa8600 3003 }
AnnaBridge 157:e7ca05fa8600 3004
AnnaBridge 157:e7ca05fa8600 3005 /**
AnnaBridge 157:e7ca05fa8600 3006 * @brief Enable Character Match Interrupt
AnnaBridge 157:e7ca05fa8600 3007 * @rmtoll CR1 CMIE LL_USART_EnableIT_CM
AnnaBridge 157:e7ca05fa8600 3008 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3009 * @retval None
AnnaBridge 157:e7ca05fa8600 3010 */
AnnaBridge 157:e7ca05fa8600 3011 __STATIC_INLINE void LL_USART_EnableIT_CM(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3012 {
AnnaBridge 157:e7ca05fa8600 3013 SET_BIT(USARTx->CR1, USART_CR1_CMIE);
AnnaBridge 157:e7ca05fa8600 3014 }
AnnaBridge 157:e7ca05fa8600 3015
AnnaBridge 157:e7ca05fa8600 3016 /**
AnnaBridge 157:e7ca05fa8600 3017 * @brief Enable Receiver Timeout Interrupt
AnnaBridge 157:e7ca05fa8600 3018 * @rmtoll CR1 RTOIE LL_USART_EnableIT_RTO
AnnaBridge 157:e7ca05fa8600 3019 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3020 * @retval None
AnnaBridge 157:e7ca05fa8600 3021 */
AnnaBridge 157:e7ca05fa8600 3022 __STATIC_INLINE void LL_USART_EnableIT_RTO(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3023 {
AnnaBridge 157:e7ca05fa8600 3024 SET_BIT(USARTx->CR1, USART_CR1_RTOIE);
AnnaBridge 157:e7ca05fa8600 3025 }
AnnaBridge 157:e7ca05fa8600 3026
AnnaBridge 157:e7ca05fa8600 3027 /**
AnnaBridge 157:e7ca05fa8600 3028 * @brief Enable End Of Block Interrupt
AnnaBridge 157:e7ca05fa8600 3029 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3030 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3031 * @rmtoll CR1 EOBIE LL_USART_EnableIT_EOB
AnnaBridge 157:e7ca05fa8600 3032 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3033 * @retval None
AnnaBridge 157:e7ca05fa8600 3034 */
AnnaBridge 157:e7ca05fa8600 3035 __STATIC_INLINE void LL_USART_EnableIT_EOB(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3036 {
AnnaBridge 157:e7ca05fa8600 3037 SET_BIT(USARTx->CR1, USART_CR1_EOBIE);
AnnaBridge 157:e7ca05fa8600 3038 }
AnnaBridge 157:e7ca05fa8600 3039
AnnaBridge 157:e7ca05fa8600 3040 /**
AnnaBridge 157:e7ca05fa8600 3041 * @brief Enable LIN Break Detection Interrupt
AnnaBridge 157:e7ca05fa8600 3042 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3043 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3044 * @rmtoll CR2 LBDIE LL_USART_EnableIT_LBD
AnnaBridge 157:e7ca05fa8600 3045 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3046 * @retval None
AnnaBridge 157:e7ca05fa8600 3047 */
AnnaBridge 157:e7ca05fa8600 3048 __STATIC_INLINE void LL_USART_EnableIT_LBD(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3049 {
AnnaBridge 157:e7ca05fa8600 3050 SET_BIT(USARTx->CR2, USART_CR2_LBDIE);
AnnaBridge 157:e7ca05fa8600 3051 }
AnnaBridge 157:e7ca05fa8600 3052
AnnaBridge 157:e7ca05fa8600 3053 /**
AnnaBridge 157:e7ca05fa8600 3054 * @brief Enable Error Interrupt
AnnaBridge 157:e7ca05fa8600 3055 * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing
AnnaBridge 157:e7ca05fa8600 3056 * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the USARTx_ISR register).
AnnaBridge 157:e7ca05fa8600 3057 * 0: Interrupt is inhibited
AnnaBridge 157:e7ca05fa8600 3058 * 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the USARTx_ISR register.
AnnaBridge 157:e7ca05fa8600 3059 * @rmtoll CR3 EIE LL_USART_EnableIT_ERROR
AnnaBridge 157:e7ca05fa8600 3060 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3061 * @retval None
AnnaBridge 157:e7ca05fa8600 3062 */
AnnaBridge 157:e7ca05fa8600 3063 __STATIC_INLINE void LL_USART_EnableIT_ERROR(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3064 {
AnnaBridge 157:e7ca05fa8600 3065 SET_BIT(USARTx->CR3, USART_CR3_EIE);
AnnaBridge 157:e7ca05fa8600 3066 }
AnnaBridge 157:e7ca05fa8600 3067
AnnaBridge 157:e7ca05fa8600 3068 /**
AnnaBridge 157:e7ca05fa8600 3069 * @brief Enable CTS Interrupt
AnnaBridge 157:e7ca05fa8600 3070 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3071 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3072 * @rmtoll CR3 CTSIE LL_USART_EnableIT_CTS
AnnaBridge 157:e7ca05fa8600 3073 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3074 * @retval None
AnnaBridge 157:e7ca05fa8600 3075 */
AnnaBridge 157:e7ca05fa8600 3076 __STATIC_INLINE void LL_USART_EnableIT_CTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3077 {
AnnaBridge 157:e7ca05fa8600 3078 SET_BIT(USARTx->CR3, USART_CR3_CTSIE);
AnnaBridge 157:e7ca05fa8600 3079 }
AnnaBridge 157:e7ca05fa8600 3080
AnnaBridge 157:e7ca05fa8600 3081 /**
AnnaBridge 157:e7ca05fa8600 3082 * @brief Enable Wake Up from Stop Mode Interrupt
AnnaBridge 157:e7ca05fa8600 3083 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3084 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3085 * @rmtoll CR3 WUFIE LL_USART_EnableIT_WKUP
AnnaBridge 157:e7ca05fa8600 3086 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3087 * @retval None
AnnaBridge 157:e7ca05fa8600 3088 */
AnnaBridge 157:e7ca05fa8600 3089 __STATIC_INLINE void LL_USART_EnableIT_WKUP(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3090 {
AnnaBridge 157:e7ca05fa8600 3091 SET_BIT(USARTx->CR3, USART_CR3_WUFIE);
AnnaBridge 157:e7ca05fa8600 3092 }
AnnaBridge 157:e7ca05fa8600 3093
AnnaBridge 157:e7ca05fa8600 3094 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 3095 /* Function available only on devices supporting Transmit Complete before Guard Time feature */
AnnaBridge 157:e7ca05fa8600 3096 /**
AnnaBridge 157:e7ca05fa8600 3097 * @brief Enable Smartcard Transmission Complete Before Guard Time Interrupt
AnnaBridge 157:e7ca05fa8600 3098 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3099 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3100 * @rmtoll CR3 TCBGTIE LL_USART_EnableIT_TCBGT
AnnaBridge 157:e7ca05fa8600 3101 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3102 * @retval None
AnnaBridge 157:e7ca05fa8600 3103 */
AnnaBridge 157:e7ca05fa8600 3104 __STATIC_INLINE void LL_USART_EnableIT_TCBGT(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3105 {
AnnaBridge 157:e7ca05fa8600 3106 SET_BIT(USARTx->CR3, USART_CR3_TCBGTIE);
AnnaBridge 157:e7ca05fa8600 3107 }
AnnaBridge 157:e7ca05fa8600 3108 #endif
AnnaBridge 157:e7ca05fa8600 3109
AnnaBridge 157:e7ca05fa8600 3110 /**
AnnaBridge 157:e7ca05fa8600 3111 * @brief Disable IDLE Interrupt
AnnaBridge 157:e7ca05fa8600 3112 * @rmtoll CR1 IDLEIE LL_USART_DisableIT_IDLE
AnnaBridge 157:e7ca05fa8600 3113 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3114 * @retval None
AnnaBridge 157:e7ca05fa8600 3115 */
AnnaBridge 157:e7ca05fa8600 3116 __STATIC_INLINE void LL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3117 {
AnnaBridge 157:e7ca05fa8600 3118 CLEAR_BIT(USARTx->CR1, USART_CR1_IDLEIE);
AnnaBridge 157:e7ca05fa8600 3119 }
AnnaBridge 157:e7ca05fa8600 3120
AnnaBridge 157:e7ca05fa8600 3121 /**
AnnaBridge 157:e7ca05fa8600 3122 * @brief Disable RX Not Empty Interrupt
AnnaBridge 157:e7ca05fa8600 3123 * @rmtoll CR1 RXNEIE LL_USART_DisableIT_RXNE
AnnaBridge 157:e7ca05fa8600 3124 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3125 * @retval None
AnnaBridge 157:e7ca05fa8600 3126 */
AnnaBridge 157:e7ca05fa8600 3127 __STATIC_INLINE void LL_USART_DisableIT_RXNE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3128 {
AnnaBridge 157:e7ca05fa8600 3129 CLEAR_BIT(USARTx->CR1, USART_CR1_RXNEIE);
AnnaBridge 157:e7ca05fa8600 3130 }
AnnaBridge 157:e7ca05fa8600 3131
AnnaBridge 157:e7ca05fa8600 3132 /**
AnnaBridge 157:e7ca05fa8600 3133 * @brief Disable Transmission Complete Interrupt
AnnaBridge 157:e7ca05fa8600 3134 * @rmtoll CR1 TCIE LL_USART_DisableIT_TC
AnnaBridge 157:e7ca05fa8600 3135 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3136 * @retval None
AnnaBridge 157:e7ca05fa8600 3137 */
AnnaBridge 157:e7ca05fa8600 3138 __STATIC_INLINE void LL_USART_DisableIT_TC(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3139 {
AnnaBridge 157:e7ca05fa8600 3140 CLEAR_BIT(USARTx->CR1, USART_CR1_TCIE);
AnnaBridge 157:e7ca05fa8600 3141 }
AnnaBridge 157:e7ca05fa8600 3142
AnnaBridge 157:e7ca05fa8600 3143 /**
AnnaBridge 157:e7ca05fa8600 3144 * @brief Disable TX Empty Interrupt
AnnaBridge 157:e7ca05fa8600 3145 * @rmtoll CR1 TXEIE LL_USART_DisableIT_TXE
AnnaBridge 157:e7ca05fa8600 3146 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3147 * @retval None
AnnaBridge 157:e7ca05fa8600 3148 */
AnnaBridge 157:e7ca05fa8600 3149 __STATIC_INLINE void LL_USART_DisableIT_TXE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3150 {
AnnaBridge 157:e7ca05fa8600 3151 CLEAR_BIT(USARTx->CR1, USART_CR1_TXEIE);
AnnaBridge 157:e7ca05fa8600 3152 }
AnnaBridge 157:e7ca05fa8600 3153
AnnaBridge 157:e7ca05fa8600 3154 /**
AnnaBridge 157:e7ca05fa8600 3155 * @brief Disable Parity Error Interrupt
AnnaBridge 157:e7ca05fa8600 3156 * @rmtoll CR1 PEIE LL_USART_DisableIT_PE
AnnaBridge 157:e7ca05fa8600 3157 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3158 * @retval None
AnnaBridge 157:e7ca05fa8600 3159 */
AnnaBridge 157:e7ca05fa8600 3160 __STATIC_INLINE void LL_USART_DisableIT_PE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3161 {
AnnaBridge 157:e7ca05fa8600 3162 CLEAR_BIT(USARTx->CR1, USART_CR1_PEIE);
AnnaBridge 157:e7ca05fa8600 3163 }
AnnaBridge 157:e7ca05fa8600 3164
AnnaBridge 157:e7ca05fa8600 3165 /**
AnnaBridge 157:e7ca05fa8600 3166 * @brief Disable Character Match Interrupt
AnnaBridge 157:e7ca05fa8600 3167 * @rmtoll CR1 CMIE LL_USART_DisableIT_CM
AnnaBridge 157:e7ca05fa8600 3168 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3169 * @retval None
AnnaBridge 157:e7ca05fa8600 3170 */
AnnaBridge 157:e7ca05fa8600 3171 __STATIC_INLINE void LL_USART_DisableIT_CM(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3172 {
AnnaBridge 157:e7ca05fa8600 3173 CLEAR_BIT(USARTx->CR1, USART_CR1_CMIE);
AnnaBridge 157:e7ca05fa8600 3174 }
AnnaBridge 157:e7ca05fa8600 3175
AnnaBridge 157:e7ca05fa8600 3176 /**
AnnaBridge 157:e7ca05fa8600 3177 * @brief Disable Receiver Timeout Interrupt
AnnaBridge 157:e7ca05fa8600 3178 * @rmtoll CR1 RTOIE LL_USART_DisableIT_RTO
AnnaBridge 157:e7ca05fa8600 3179 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3180 * @retval None
AnnaBridge 157:e7ca05fa8600 3181 */
AnnaBridge 157:e7ca05fa8600 3182 __STATIC_INLINE void LL_USART_DisableIT_RTO(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3183 {
AnnaBridge 157:e7ca05fa8600 3184 CLEAR_BIT(USARTx->CR1, USART_CR1_RTOIE);
AnnaBridge 157:e7ca05fa8600 3185 }
AnnaBridge 157:e7ca05fa8600 3186
AnnaBridge 157:e7ca05fa8600 3187 /**
AnnaBridge 157:e7ca05fa8600 3188 * @brief Disable End Of Block Interrupt
AnnaBridge 157:e7ca05fa8600 3189 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3190 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3191 * @rmtoll CR1 EOBIE LL_USART_DisableIT_EOB
AnnaBridge 157:e7ca05fa8600 3192 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3193 * @retval None
AnnaBridge 157:e7ca05fa8600 3194 */
AnnaBridge 157:e7ca05fa8600 3195 __STATIC_INLINE void LL_USART_DisableIT_EOB(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3196 {
AnnaBridge 157:e7ca05fa8600 3197 CLEAR_BIT(USARTx->CR1, USART_CR1_EOBIE);
AnnaBridge 157:e7ca05fa8600 3198 }
AnnaBridge 157:e7ca05fa8600 3199
AnnaBridge 157:e7ca05fa8600 3200 /**
AnnaBridge 157:e7ca05fa8600 3201 * @brief Disable LIN Break Detection Interrupt
AnnaBridge 157:e7ca05fa8600 3202 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3203 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3204 * @rmtoll CR2 LBDIE LL_USART_DisableIT_LBD
AnnaBridge 157:e7ca05fa8600 3205 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3206 * @retval None
AnnaBridge 157:e7ca05fa8600 3207 */
AnnaBridge 157:e7ca05fa8600 3208 __STATIC_INLINE void LL_USART_DisableIT_LBD(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3209 {
AnnaBridge 157:e7ca05fa8600 3210 CLEAR_BIT(USARTx->CR2, USART_CR2_LBDIE);
AnnaBridge 157:e7ca05fa8600 3211 }
AnnaBridge 157:e7ca05fa8600 3212
AnnaBridge 157:e7ca05fa8600 3213 /**
AnnaBridge 157:e7ca05fa8600 3214 * @brief Disable Error Interrupt
AnnaBridge 157:e7ca05fa8600 3215 * @note When set, Error Interrupt Enable Bit is enabling interrupt generation in case of a framing
AnnaBridge 157:e7ca05fa8600 3216 * error, overrun error or noise flag (FE=1 or ORE=1 or NF=1 in the USARTx_ISR register).
AnnaBridge 157:e7ca05fa8600 3217 * 0: Interrupt is inhibited
AnnaBridge 157:e7ca05fa8600 3218 * 1: An interrupt is generated when FE=1 or ORE=1 or NF=1 in the USARTx_ISR register.
AnnaBridge 157:e7ca05fa8600 3219 * @rmtoll CR3 EIE LL_USART_DisableIT_ERROR
AnnaBridge 157:e7ca05fa8600 3220 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3221 * @retval None
AnnaBridge 157:e7ca05fa8600 3222 */
AnnaBridge 157:e7ca05fa8600 3223 __STATIC_INLINE void LL_USART_DisableIT_ERROR(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3224 {
AnnaBridge 157:e7ca05fa8600 3225 CLEAR_BIT(USARTx->CR3, USART_CR3_EIE);
AnnaBridge 157:e7ca05fa8600 3226 }
AnnaBridge 157:e7ca05fa8600 3227
AnnaBridge 157:e7ca05fa8600 3228 /**
AnnaBridge 157:e7ca05fa8600 3229 * @brief Disable CTS Interrupt
AnnaBridge 157:e7ca05fa8600 3230 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3231 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3232 * @rmtoll CR3 CTSIE LL_USART_DisableIT_CTS
AnnaBridge 157:e7ca05fa8600 3233 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3234 * @retval None
AnnaBridge 157:e7ca05fa8600 3235 */
AnnaBridge 157:e7ca05fa8600 3236 __STATIC_INLINE void LL_USART_DisableIT_CTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3237 {
AnnaBridge 157:e7ca05fa8600 3238 CLEAR_BIT(USARTx->CR3, USART_CR3_CTSIE);
AnnaBridge 157:e7ca05fa8600 3239 }
AnnaBridge 157:e7ca05fa8600 3240
AnnaBridge 157:e7ca05fa8600 3241 /**
AnnaBridge 157:e7ca05fa8600 3242 * @brief Disable Wake Up from Stop Mode Interrupt
AnnaBridge 157:e7ca05fa8600 3243 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3244 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3245 * @rmtoll CR3 WUFIE LL_USART_DisableIT_WKUP
AnnaBridge 157:e7ca05fa8600 3246 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3247 * @retval None
AnnaBridge 157:e7ca05fa8600 3248 */
AnnaBridge 157:e7ca05fa8600 3249 __STATIC_INLINE void LL_USART_DisableIT_WKUP(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3250 {
AnnaBridge 157:e7ca05fa8600 3251 CLEAR_BIT(USARTx->CR3, USART_CR3_WUFIE);
AnnaBridge 157:e7ca05fa8600 3252 }
AnnaBridge 157:e7ca05fa8600 3253
AnnaBridge 157:e7ca05fa8600 3254 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 3255 /* Function available only on devices supporting Transmit Complete before Guard Time feature */
AnnaBridge 157:e7ca05fa8600 3256 /**
AnnaBridge 157:e7ca05fa8600 3257 * @brief Disable Smartcard Transmission Complete Before Guard Time Interrupt
AnnaBridge 157:e7ca05fa8600 3258 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3259 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3260 * @rmtoll CR3 TCBGTIE LL_USART_DisableIT_TCBGT
AnnaBridge 157:e7ca05fa8600 3261 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3262 * @retval None
AnnaBridge 157:e7ca05fa8600 3263 */
AnnaBridge 157:e7ca05fa8600 3264 __STATIC_INLINE void LL_USART_DisableIT_TCBGT(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3265 {
AnnaBridge 157:e7ca05fa8600 3266 CLEAR_BIT(USARTx->CR3, USART_CR3_TCBGTIE);
AnnaBridge 157:e7ca05fa8600 3267 }
AnnaBridge 157:e7ca05fa8600 3268 #endif
AnnaBridge 157:e7ca05fa8600 3269
AnnaBridge 157:e7ca05fa8600 3270 /**
AnnaBridge 157:e7ca05fa8600 3271 * @brief Check if the USART IDLE Interrupt source is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3272 * @rmtoll CR1 IDLEIE LL_USART_IsEnabledIT_IDLE
AnnaBridge 157:e7ca05fa8600 3273 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3274 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3275 */
AnnaBridge 157:e7ca05fa8600 3276 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_IDLE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3277 {
AnnaBridge 157:e7ca05fa8600 3278 return (READ_BIT(USARTx->CR1, USART_CR1_IDLEIE) == (USART_CR1_IDLEIE));
AnnaBridge 157:e7ca05fa8600 3279 }
AnnaBridge 157:e7ca05fa8600 3280
AnnaBridge 157:e7ca05fa8600 3281 /**
AnnaBridge 157:e7ca05fa8600 3282 * @brief Check if the USART RX Not Empty Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3283 * @rmtoll CR1 RXNEIE LL_USART_IsEnabledIT_RXNE
AnnaBridge 157:e7ca05fa8600 3284 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3285 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3286 */
AnnaBridge 157:e7ca05fa8600 3287 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXNE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3288 {
AnnaBridge 157:e7ca05fa8600 3289 return (READ_BIT(USARTx->CR1, USART_CR1_RXNEIE) == (USART_CR1_RXNEIE));
AnnaBridge 157:e7ca05fa8600 3290 }
AnnaBridge 157:e7ca05fa8600 3291
AnnaBridge 157:e7ca05fa8600 3292 /**
AnnaBridge 157:e7ca05fa8600 3293 * @brief Check if the USART Transmission Complete Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3294 * @rmtoll CR1 TCIE LL_USART_IsEnabledIT_TC
AnnaBridge 157:e7ca05fa8600 3295 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3296 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3297 */
AnnaBridge 157:e7ca05fa8600 3298 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TC(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3299 {
AnnaBridge 157:e7ca05fa8600 3300 return (READ_BIT(USARTx->CR1, USART_CR1_TCIE) == (USART_CR1_TCIE));
AnnaBridge 157:e7ca05fa8600 3301 }
AnnaBridge 157:e7ca05fa8600 3302
AnnaBridge 157:e7ca05fa8600 3303 /**
AnnaBridge 157:e7ca05fa8600 3304 * @brief Check if the USART TX Empty Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3305 * @rmtoll CR1 TXEIE LL_USART_IsEnabledIT_TXE
AnnaBridge 157:e7ca05fa8600 3306 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3307 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3308 */
AnnaBridge 157:e7ca05fa8600 3309 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3310 {
AnnaBridge 157:e7ca05fa8600 3311 return (READ_BIT(USARTx->CR1, USART_CR1_TXEIE) == (USART_CR1_TXEIE));
AnnaBridge 157:e7ca05fa8600 3312 }
AnnaBridge 157:e7ca05fa8600 3313
AnnaBridge 157:e7ca05fa8600 3314 /**
AnnaBridge 157:e7ca05fa8600 3315 * @brief Check if the USART Parity Error Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3316 * @rmtoll CR1 PEIE LL_USART_IsEnabledIT_PE
AnnaBridge 157:e7ca05fa8600 3317 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3318 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3319 */
AnnaBridge 157:e7ca05fa8600 3320 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_PE(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3321 {
AnnaBridge 157:e7ca05fa8600 3322 return (READ_BIT(USARTx->CR1, USART_CR1_PEIE) == (USART_CR1_PEIE));
AnnaBridge 157:e7ca05fa8600 3323 }
AnnaBridge 157:e7ca05fa8600 3324
AnnaBridge 157:e7ca05fa8600 3325 /**
AnnaBridge 157:e7ca05fa8600 3326 * @brief Check if the USART Character Match Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3327 * @rmtoll CR1 CMIE LL_USART_IsEnabledIT_CM
AnnaBridge 157:e7ca05fa8600 3328 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3329 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3330 */
AnnaBridge 157:e7ca05fa8600 3331 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CM(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3332 {
AnnaBridge 157:e7ca05fa8600 3333 return (READ_BIT(USARTx->CR1, USART_CR1_CMIE) == (USART_CR1_CMIE));
AnnaBridge 157:e7ca05fa8600 3334 }
AnnaBridge 157:e7ca05fa8600 3335
AnnaBridge 157:e7ca05fa8600 3336 /**
AnnaBridge 157:e7ca05fa8600 3337 * @brief Check if the USART Receiver Timeout Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3338 * @rmtoll CR1 RTOIE LL_USART_IsEnabledIT_RTO
AnnaBridge 157:e7ca05fa8600 3339 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3340 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3341 */
AnnaBridge 157:e7ca05fa8600 3342 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RTO(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3343 {
AnnaBridge 157:e7ca05fa8600 3344 return (READ_BIT(USARTx->CR1, USART_CR1_RTOIE) == (USART_CR1_RTOIE));
AnnaBridge 157:e7ca05fa8600 3345 }
AnnaBridge 157:e7ca05fa8600 3346
AnnaBridge 157:e7ca05fa8600 3347 /**
AnnaBridge 157:e7ca05fa8600 3348 * @brief Check if the USART End Of Block Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3349 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3350 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3351 * @rmtoll CR1 EOBIE LL_USART_IsEnabledIT_EOB
AnnaBridge 157:e7ca05fa8600 3352 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3353 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3354 */
AnnaBridge 157:e7ca05fa8600 3355 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_EOB(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3356 {
AnnaBridge 157:e7ca05fa8600 3357 return (READ_BIT(USARTx->CR1, USART_CR1_EOBIE) == (USART_CR1_EOBIE));
AnnaBridge 157:e7ca05fa8600 3358 }
AnnaBridge 157:e7ca05fa8600 3359
AnnaBridge 157:e7ca05fa8600 3360 /**
AnnaBridge 157:e7ca05fa8600 3361 * @brief Check if the USART LIN Break Detection Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3362 * @note Macro @ref IS_UART_LIN_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3363 * LIN feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3364 * @rmtoll CR2 LBDIE LL_USART_IsEnabledIT_LBD
AnnaBridge 157:e7ca05fa8600 3365 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3366 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3367 */
AnnaBridge 157:e7ca05fa8600 3368 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_LBD(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3369 {
AnnaBridge 157:e7ca05fa8600 3370 return (READ_BIT(USARTx->CR2, USART_CR2_LBDIE) == (USART_CR2_LBDIE));
AnnaBridge 157:e7ca05fa8600 3371 }
AnnaBridge 157:e7ca05fa8600 3372
AnnaBridge 157:e7ca05fa8600 3373 /**
AnnaBridge 157:e7ca05fa8600 3374 * @brief Check if the USART Error Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3375 * @rmtoll CR3 EIE LL_USART_IsEnabledIT_ERROR
AnnaBridge 157:e7ca05fa8600 3376 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3377 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3378 */
AnnaBridge 157:e7ca05fa8600 3379 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_ERROR(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3380 {
AnnaBridge 157:e7ca05fa8600 3381 return (READ_BIT(USARTx->CR3, USART_CR3_EIE) == (USART_CR3_EIE));
AnnaBridge 157:e7ca05fa8600 3382 }
AnnaBridge 157:e7ca05fa8600 3383
AnnaBridge 157:e7ca05fa8600 3384 /**
AnnaBridge 157:e7ca05fa8600 3385 * @brief Check if the USART CTS Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3386 * @note Macro @ref IS_UART_HWFLOW_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3387 * Hardware Flow control feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3388 * @rmtoll CR3 CTSIE LL_USART_IsEnabledIT_CTS
AnnaBridge 157:e7ca05fa8600 3389 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3390 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3391 */
AnnaBridge 157:e7ca05fa8600 3392 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CTS(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3393 {
AnnaBridge 157:e7ca05fa8600 3394 return (READ_BIT(USARTx->CR3, USART_CR3_CTSIE) == (USART_CR3_CTSIE));
AnnaBridge 157:e7ca05fa8600 3395 }
AnnaBridge 157:e7ca05fa8600 3396
AnnaBridge 157:e7ca05fa8600 3397 /**
AnnaBridge 157:e7ca05fa8600 3398 * @brief Check if the USART Wake Up from Stop Mode Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3399 * @note Macro @ref IS_UART_WAKEUP_FROMSTOP_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3400 * Wake-up from Stop mode feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3401 * @rmtoll CR3 WUFIE LL_USART_IsEnabledIT_WKUP
AnnaBridge 157:e7ca05fa8600 3402 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3403 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3404 */
AnnaBridge 157:e7ca05fa8600 3405 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_WKUP(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3406 {
AnnaBridge 157:e7ca05fa8600 3407 return (READ_BIT(USARTx->CR3, USART_CR3_WUFIE) == (USART_CR3_WUFIE));
AnnaBridge 157:e7ca05fa8600 3408 }
AnnaBridge 157:e7ca05fa8600 3409
AnnaBridge 157:e7ca05fa8600 3410 #if defined(USART_TCBGT_SUPPORT)
AnnaBridge 157:e7ca05fa8600 3411 /* Function available only on devices supporting Transmit Complete before Guard Time feature */
AnnaBridge 157:e7ca05fa8600 3412 /**
AnnaBridge 157:e7ca05fa8600 3413 * @brief Check if the Smartcard Transmission Complete Before Guard Time Interrupt is enabled or disabled.
AnnaBridge 157:e7ca05fa8600 3414 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3415 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3416 * @rmtoll CR3 TCBGTIE LL_USART_IsEnabledIT_TCBGT
AnnaBridge 157:e7ca05fa8600 3417 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3418 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3419 */
AnnaBridge 157:e7ca05fa8600 3420 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TCBGT(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3421 {
AnnaBridge 157:e7ca05fa8600 3422 return (READ_BIT(USARTx->CR3, USART_CR3_TCBGTIE) == (USART_CR3_TCBGTIE));
AnnaBridge 157:e7ca05fa8600 3423 }
AnnaBridge 157:e7ca05fa8600 3424 #endif
AnnaBridge 157:e7ca05fa8600 3425
AnnaBridge 157:e7ca05fa8600 3426 /**
AnnaBridge 157:e7ca05fa8600 3427 * @}
AnnaBridge 157:e7ca05fa8600 3428 */
AnnaBridge 157:e7ca05fa8600 3429
AnnaBridge 157:e7ca05fa8600 3430 /** @defgroup USART_LL_EF_DMA_Management DMA_Management
AnnaBridge 157:e7ca05fa8600 3431 * @{
AnnaBridge 157:e7ca05fa8600 3432 */
AnnaBridge 157:e7ca05fa8600 3433
AnnaBridge 157:e7ca05fa8600 3434 /**
AnnaBridge 157:e7ca05fa8600 3435 * @brief Enable DMA Mode for reception
AnnaBridge 157:e7ca05fa8600 3436 * @rmtoll CR3 DMAR LL_USART_EnableDMAReq_RX
AnnaBridge 157:e7ca05fa8600 3437 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3438 * @retval None
AnnaBridge 157:e7ca05fa8600 3439 */
AnnaBridge 157:e7ca05fa8600 3440 __STATIC_INLINE void LL_USART_EnableDMAReq_RX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3441 {
AnnaBridge 157:e7ca05fa8600 3442 SET_BIT(USARTx->CR3, USART_CR3_DMAR);
AnnaBridge 157:e7ca05fa8600 3443 }
AnnaBridge 157:e7ca05fa8600 3444
AnnaBridge 157:e7ca05fa8600 3445 /**
AnnaBridge 157:e7ca05fa8600 3446 * @brief Disable DMA Mode for reception
AnnaBridge 157:e7ca05fa8600 3447 * @rmtoll CR3 DMAR LL_USART_DisableDMAReq_RX
AnnaBridge 157:e7ca05fa8600 3448 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3449 * @retval None
AnnaBridge 157:e7ca05fa8600 3450 */
AnnaBridge 157:e7ca05fa8600 3451 __STATIC_INLINE void LL_USART_DisableDMAReq_RX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3452 {
AnnaBridge 157:e7ca05fa8600 3453 CLEAR_BIT(USARTx->CR3, USART_CR3_DMAR);
AnnaBridge 157:e7ca05fa8600 3454 }
AnnaBridge 157:e7ca05fa8600 3455
AnnaBridge 157:e7ca05fa8600 3456 /**
AnnaBridge 157:e7ca05fa8600 3457 * @brief Check if DMA Mode is enabled for reception
AnnaBridge 157:e7ca05fa8600 3458 * @rmtoll CR3 DMAR LL_USART_IsEnabledDMAReq_RX
AnnaBridge 157:e7ca05fa8600 3459 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3460 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3461 */
AnnaBridge 157:e7ca05fa8600 3462 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_RX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3463 {
AnnaBridge 157:e7ca05fa8600 3464 return (READ_BIT(USARTx->CR3, USART_CR3_DMAR) == (USART_CR3_DMAR));
AnnaBridge 157:e7ca05fa8600 3465 }
AnnaBridge 157:e7ca05fa8600 3466
AnnaBridge 157:e7ca05fa8600 3467 /**
AnnaBridge 157:e7ca05fa8600 3468 * @brief Enable DMA Mode for transmission
AnnaBridge 157:e7ca05fa8600 3469 * @rmtoll CR3 DMAT LL_USART_EnableDMAReq_TX
AnnaBridge 157:e7ca05fa8600 3470 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3471 * @retval None
AnnaBridge 157:e7ca05fa8600 3472 */
AnnaBridge 157:e7ca05fa8600 3473 __STATIC_INLINE void LL_USART_EnableDMAReq_TX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3474 {
AnnaBridge 157:e7ca05fa8600 3475 SET_BIT(USARTx->CR3, USART_CR3_DMAT);
AnnaBridge 157:e7ca05fa8600 3476 }
AnnaBridge 157:e7ca05fa8600 3477
AnnaBridge 157:e7ca05fa8600 3478 /**
AnnaBridge 157:e7ca05fa8600 3479 * @brief Disable DMA Mode for transmission
AnnaBridge 157:e7ca05fa8600 3480 * @rmtoll CR3 DMAT LL_USART_DisableDMAReq_TX
AnnaBridge 157:e7ca05fa8600 3481 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3482 * @retval None
AnnaBridge 157:e7ca05fa8600 3483 */
AnnaBridge 157:e7ca05fa8600 3484 __STATIC_INLINE void LL_USART_DisableDMAReq_TX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3485 {
AnnaBridge 157:e7ca05fa8600 3486 CLEAR_BIT(USARTx->CR3, USART_CR3_DMAT);
AnnaBridge 157:e7ca05fa8600 3487 }
AnnaBridge 157:e7ca05fa8600 3488
AnnaBridge 157:e7ca05fa8600 3489 /**
AnnaBridge 157:e7ca05fa8600 3490 * @brief Check if DMA Mode is enabled for transmission
AnnaBridge 157:e7ca05fa8600 3491 * @rmtoll CR3 DMAT LL_USART_IsEnabledDMAReq_TX
AnnaBridge 157:e7ca05fa8600 3492 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3493 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3494 */
AnnaBridge 157:e7ca05fa8600 3495 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_TX(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3496 {
AnnaBridge 157:e7ca05fa8600 3497 return (READ_BIT(USARTx->CR3, USART_CR3_DMAT) == (USART_CR3_DMAT));
AnnaBridge 157:e7ca05fa8600 3498 }
AnnaBridge 157:e7ca05fa8600 3499
AnnaBridge 157:e7ca05fa8600 3500 /**
AnnaBridge 157:e7ca05fa8600 3501 * @brief Enable DMA Disabling on Reception Error
AnnaBridge 157:e7ca05fa8600 3502 * @rmtoll CR3 DDRE LL_USART_EnableDMADeactOnRxErr
AnnaBridge 157:e7ca05fa8600 3503 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3504 * @retval None
AnnaBridge 157:e7ca05fa8600 3505 */
AnnaBridge 157:e7ca05fa8600 3506 __STATIC_INLINE void LL_USART_EnableDMADeactOnRxErr(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3507 {
AnnaBridge 157:e7ca05fa8600 3508 SET_BIT(USARTx->CR3, USART_CR3_DDRE);
AnnaBridge 157:e7ca05fa8600 3509 }
AnnaBridge 157:e7ca05fa8600 3510
AnnaBridge 157:e7ca05fa8600 3511 /**
AnnaBridge 157:e7ca05fa8600 3512 * @brief Disable DMA Disabling on Reception Error
AnnaBridge 157:e7ca05fa8600 3513 * @rmtoll CR3 DDRE LL_USART_DisableDMADeactOnRxErr
AnnaBridge 157:e7ca05fa8600 3514 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3515 * @retval None
AnnaBridge 157:e7ca05fa8600 3516 */
AnnaBridge 157:e7ca05fa8600 3517 __STATIC_INLINE void LL_USART_DisableDMADeactOnRxErr(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3518 {
AnnaBridge 157:e7ca05fa8600 3519 CLEAR_BIT(USARTx->CR3, USART_CR3_DDRE);
AnnaBridge 157:e7ca05fa8600 3520 }
AnnaBridge 157:e7ca05fa8600 3521
AnnaBridge 157:e7ca05fa8600 3522 /**
AnnaBridge 157:e7ca05fa8600 3523 * @brief Indicate if DMA Disabling on Reception Error is disabled
AnnaBridge 157:e7ca05fa8600 3524 * @rmtoll CR3 DDRE LL_USART_IsEnabledDMADeactOnRxErr
AnnaBridge 157:e7ca05fa8600 3525 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3526 * @retval State of bit (1 or 0).
AnnaBridge 157:e7ca05fa8600 3527 */
AnnaBridge 157:e7ca05fa8600 3528 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMADeactOnRxErr(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3529 {
AnnaBridge 157:e7ca05fa8600 3530 return (READ_BIT(USARTx->CR3, USART_CR3_DDRE) == (USART_CR3_DDRE));
AnnaBridge 157:e7ca05fa8600 3531 }
AnnaBridge 157:e7ca05fa8600 3532
AnnaBridge 157:e7ca05fa8600 3533 /**
AnnaBridge 157:e7ca05fa8600 3534 * @brief Get the data register address used for DMA transfer
AnnaBridge 157:e7ca05fa8600 3535 * @rmtoll RDR RDR LL_USART_DMA_GetRegAddr\n
AnnaBridge 157:e7ca05fa8600 3536 * @rmtoll TDR TDR LL_USART_DMA_GetRegAddr
AnnaBridge 157:e7ca05fa8600 3537 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3538 * @param Direction This parameter can be one of the following values:
AnnaBridge 157:e7ca05fa8600 3539 * @arg @ref LL_USART_DMA_REG_DATA_TRANSMIT
AnnaBridge 157:e7ca05fa8600 3540 * @arg @ref LL_USART_DMA_REG_DATA_RECEIVE
AnnaBridge 157:e7ca05fa8600 3541 * @retval Address of data register
AnnaBridge 157:e7ca05fa8600 3542 */
AnnaBridge 157:e7ca05fa8600 3543 __STATIC_INLINE uint32_t LL_USART_DMA_GetRegAddr(USART_TypeDef *USARTx, uint32_t Direction)
AnnaBridge 157:e7ca05fa8600 3544 {
AnnaBridge 157:e7ca05fa8600 3545 register uint32_t data_reg_addr = 0U;
AnnaBridge 157:e7ca05fa8600 3546
AnnaBridge 157:e7ca05fa8600 3547 if (Direction == LL_USART_DMA_REG_DATA_TRANSMIT)
AnnaBridge 157:e7ca05fa8600 3548 {
AnnaBridge 157:e7ca05fa8600 3549 /* return address of TDR register */
AnnaBridge 157:e7ca05fa8600 3550 data_reg_addr = (uint32_t) &(USARTx->TDR);
AnnaBridge 157:e7ca05fa8600 3551 }
AnnaBridge 157:e7ca05fa8600 3552 else
AnnaBridge 157:e7ca05fa8600 3553 {
AnnaBridge 157:e7ca05fa8600 3554 /* return address of RDR register */
AnnaBridge 157:e7ca05fa8600 3555 data_reg_addr = (uint32_t) &(USARTx->RDR);
AnnaBridge 157:e7ca05fa8600 3556 }
AnnaBridge 157:e7ca05fa8600 3557
AnnaBridge 157:e7ca05fa8600 3558 return data_reg_addr;
AnnaBridge 157:e7ca05fa8600 3559 }
AnnaBridge 157:e7ca05fa8600 3560
AnnaBridge 157:e7ca05fa8600 3561 /**
AnnaBridge 157:e7ca05fa8600 3562 * @}
AnnaBridge 157:e7ca05fa8600 3563 */
AnnaBridge 157:e7ca05fa8600 3564
AnnaBridge 157:e7ca05fa8600 3565 /** @defgroup USART_LL_EF_Data_Management Data_Management
AnnaBridge 157:e7ca05fa8600 3566 * @{
AnnaBridge 157:e7ca05fa8600 3567 */
AnnaBridge 157:e7ca05fa8600 3568
AnnaBridge 157:e7ca05fa8600 3569 /**
AnnaBridge 157:e7ca05fa8600 3570 * @brief Read Receiver Data register (Receive Data value, 8 bits)
AnnaBridge 157:e7ca05fa8600 3571 * @rmtoll RDR RDR LL_USART_ReceiveData8
AnnaBridge 157:e7ca05fa8600 3572 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3573 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 3574 */
AnnaBridge 157:e7ca05fa8600 3575 __STATIC_INLINE uint8_t LL_USART_ReceiveData8(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3576 {
AnnaBridge 157:e7ca05fa8600 3577 return (uint8_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR));
AnnaBridge 157:e7ca05fa8600 3578 }
AnnaBridge 157:e7ca05fa8600 3579
AnnaBridge 157:e7ca05fa8600 3580 /**
AnnaBridge 157:e7ca05fa8600 3581 * @brief Read Receiver Data register (Receive Data value, 9 bits)
AnnaBridge 157:e7ca05fa8600 3582 * @rmtoll RDR RDR LL_USART_ReceiveData9
AnnaBridge 157:e7ca05fa8600 3583 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3584 * @retval Value between Min_Data=0x00 and Max_Data=0x1FF
AnnaBridge 157:e7ca05fa8600 3585 */
AnnaBridge 157:e7ca05fa8600 3586 __STATIC_INLINE uint16_t LL_USART_ReceiveData9(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3587 {
AnnaBridge 157:e7ca05fa8600 3588 return (uint16_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR));
AnnaBridge 157:e7ca05fa8600 3589 }
AnnaBridge 157:e7ca05fa8600 3590
AnnaBridge 157:e7ca05fa8600 3591 /**
AnnaBridge 157:e7ca05fa8600 3592 * @brief Write in Transmitter Data Register (Transmit Data value, 8 bits)
AnnaBridge 157:e7ca05fa8600 3593 * @rmtoll TDR TDR LL_USART_TransmitData8
AnnaBridge 157:e7ca05fa8600 3594 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3595 * @param Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 157:e7ca05fa8600 3596 * @retval None
AnnaBridge 157:e7ca05fa8600 3597 */
AnnaBridge 157:e7ca05fa8600 3598 __STATIC_INLINE void LL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value)
AnnaBridge 157:e7ca05fa8600 3599 {
AnnaBridge 157:e7ca05fa8600 3600 USARTx->TDR = Value;
AnnaBridge 157:e7ca05fa8600 3601 }
AnnaBridge 157:e7ca05fa8600 3602
AnnaBridge 157:e7ca05fa8600 3603 /**
AnnaBridge 157:e7ca05fa8600 3604 * @brief Write in Transmitter Data Register (Transmit Data value, 9 bits)
AnnaBridge 157:e7ca05fa8600 3605 * @rmtoll TDR TDR LL_USART_TransmitData9
AnnaBridge 157:e7ca05fa8600 3606 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3607 * @param Value between Min_Data=0x00 and Max_Data=0x1FF
AnnaBridge 157:e7ca05fa8600 3608 * @retval None
AnnaBridge 157:e7ca05fa8600 3609 */
AnnaBridge 157:e7ca05fa8600 3610 __STATIC_INLINE void LL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value)
AnnaBridge 157:e7ca05fa8600 3611 {
AnnaBridge 157:e7ca05fa8600 3612 USARTx->TDR = Value & 0x1FFU;
AnnaBridge 157:e7ca05fa8600 3613 }
AnnaBridge 157:e7ca05fa8600 3614
AnnaBridge 157:e7ca05fa8600 3615 /**
AnnaBridge 157:e7ca05fa8600 3616 * @}
AnnaBridge 157:e7ca05fa8600 3617 */
AnnaBridge 157:e7ca05fa8600 3618
AnnaBridge 157:e7ca05fa8600 3619 /** @defgroup USART_LL_EF_Execution Execution
AnnaBridge 157:e7ca05fa8600 3620 * @{
AnnaBridge 157:e7ca05fa8600 3621 */
AnnaBridge 157:e7ca05fa8600 3622
AnnaBridge 157:e7ca05fa8600 3623 /**
AnnaBridge 157:e7ca05fa8600 3624 * @brief Request an Automatic Baud Rate measurement on next received data frame
AnnaBridge 157:e7ca05fa8600 3625 * @note Macro @ref IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3626 * Auto Baud Rate detection feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3627 * @rmtoll RQR ABRRQ LL_USART_RequestAutoBaudRate
AnnaBridge 157:e7ca05fa8600 3628 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3629 * @retval None
AnnaBridge 157:e7ca05fa8600 3630 */
AnnaBridge 157:e7ca05fa8600 3631 __STATIC_INLINE void LL_USART_RequestAutoBaudRate(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3632 {
AnnaBridge 157:e7ca05fa8600 3633 SET_BIT(USARTx->RQR, USART_RQR_ABRRQ);
AnnaBridge 157:e7ca05fa8600 3634 }
AnnaBridge 157:e7ca05fa8600 3635
AnnaBridge 157:e7ca05fa8600 3636 /**
AnnaBridge 157:e7ca05fa8600 3637 * @brief Request Break sending
AnnaBridge 157:e7ca05fa8600 3638 * @rmtoll RQR SBKRQ LL_USART_RequestBreakSending
AnnaBridge 157:e7ca05fa8600 3639 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3640 * @retval None
AnnaBridge 157:e7ca05fa8600 3641 */
AnnaBridge 157:e7ca05fa8600 3642 __STATIC_INLINE void LL_USART_RequestBreakSending(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3643 {
AnnaBridge 157:e7ca05fa8600 3644 SET_BIT(USARTx->RQR, USART_RQR_SBKRQ);
AnnaBridge 157:e7ca05fa8600 3645 }
AnnaBridge 157:e7ca05fa8600 3646
AnnaBridge 157:e7ca05fa8600 3647 /**
AnnaBridge 157:e7ca05fa8600 3648 * @brief Put USART in mute mode and set the RWU flag
AnnaBridge 157:e7ca05fa8600 3649 * @rmtoll RQR MMRQ LL_USART_RequestEnterMuteMode
AnnaBridge 157:e7ca05fa8600 3650 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3651 * @retval None
AnnaBridge 157:e7ca05fa8600 3652 */
AnnaBridge 157:e7ca05fa8600 3653 __STATIC_INLINE void LL_USART_RequestEnterMuteMode(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3654 {
AnnaBridge 157:e7ca05fa8600 3655 SET_BIT(USARTx->RQR, USART_RQR_MMRQ);
AnnaBridge 157:e7ca05fa8600 3656 }
AnnaBridge 157:e7ca05fa8600 3657
AnnaBridge 157:e7ca05fa8600 3658 /**
AnnaBridge 157:e7ca05fa8600 3659 * @brief Request a Receive Data flush
AnnaBridge 157:e7ca05fa8600 3660 * @rmtoll RQR RXFRQ LL_USART_RequestRxDataFlush
AnnaBridge 157:e7ca05fa8600 3661 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3662 * @retval None
AnnaBridge 157:e7ca05fa8600 3663 */
AnnaBridge 157:e7ca05fa8600 3664 __STATIC_INLINE void LL_USART_RequestRxDataFlush(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3665 {
AnnaBridge 157:e7ca05fa8600 3666 SET_BIT(USARTx->RQR, USART_RQR_RXFRQ);
AnnaBridge 157:e7ca05fa8600 3667 }
AnnaBridge 157:e7ca05fa8600 3668
AnnaBridge 157:e7ca05fa8600 3669 /**
AnnaBridge 157:e7ca05fa8600 3670 * @brief Request a Transmit data flush
AnnaBridge 157:e7ca05fa8600 3671 * @note Macro @ref IS_SMARTCARD_INSTANCE(USARTx) can be used to check whether or not
AnnaBridge 157:e7ca05fa8600 3672 * Smartcard feature is supported by the USARTx instance.
AnnaBridge 157:e7ca05fa8600 3673 * @rmtoll RQR TXFRQ LL_USART_RequestTxDataFlush
AnnaBridge 157:e7ca05fa8600 3674 * @param USARTx USART Instance
AnnaBridge 157:e7ca05fa8600 3675 * @retval None
AnnaBridge 157:e7ca05fa8600 3676 */
AnnaBridge 157:e7ca05fa8600 3677 __STATIC_INLINE void LL_USART_RequestTxDataFlush(USART_TypeDef *USARTx)
AnnaBridge 157:e7ca05fa8600 3678 {
AnnaBridge 157:e7ca05fa8600 3679 SET_BIT(USARTx->RQR, USART_RQR_TXFRQ);
AnnaBridge 157:e7ca05fa8600 3680 }
AnnaBridge 157:e7ca05fa8600 3681
AnnaBridge 157:e7ca05fa8600 3682 /**
AnnaBridge 157:e7ca05fa8600 3683 * @}
AnnaBridge 157:e7ca05fa8600 3684 */
AnnaBridge 157:e7ca05fa8600 3685
AnnaBridge 157:e7ca05fa8600 3686 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 157:e7ca05fa8600 3687 /** @defgroup USART_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 157:e7ca05fa8600 3688 * @{
AnnaBridge 157:e7ca05fa8600 3689 */
AnnaBridge 157:e7ca05fa8600 3690 ErrorStatus LL_USART_DeInit(USART_TypeDef *USARTx);
AnnaBridge 157:e7ca05fa8600 3691 ErrorStatus LL_USART_Init(USART_TypeDef *USARTx, LL_USART_InitTypeDef *USART_InitStruct);
AnnaBridge 157:e7ca05fa8600 3692 void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct);
AnnaBridge 157:e7ca05fa8600 3693 ErrorStatus LL_USART_ClockInit(USART_TypeDef *USARTx, LL_USART_ClockInitTypeDef *USART_ClockInitStruct);
AnnaBridge 157:e7ca05fa8600 3694 void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct);
AnnaBridge 157:e7ca05fa8600 3695 /**
AnnaBridge 157:e7ca05fa8600 3696 * @}
AnnaBridge 157:e7ca05fa8600 3697 */
AnnaBridge 157:e7ca05fa8600 3698 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 157:e7ca05fa8600 3699
AnnaBridge 157:e7ca05fa8600 3700 /**
AnnaBridge 157:e7ca05fa8600 3701 * @}
AnnaBridge 157:e7ca05fa8600 3702 */
AnnaBridge 157:e7ca05fa8600 3703
AnnaBridge 157:e7ca05fa8600 3704 /**
AnnaBridge 157:e7ca05fa8600 3705 * @}
AnnaBridge 157:e7ca05fa8600 3706 */
AnnaBridge 157:e7ca05fa8600 3707
AnnaBridge 157:e7ca05fa8600 3708 #endif /* USART1 || USART2 || USART4 || USART5 */
AnnaBridge 157:e7ca05fa8600 3709
AnnaBridge 157:e7ca05fa8600 3710 /**
AnnaBridge 157:e7ca05fa8600 3711 * @}
AnnaBridge 157:e7ca05fa8600 3712 */
AnnaBridge 157:e7ca05fa8600 3713
AnnaBridge 157:e7ca05fa8600 3714 #ifdef __cplusplus
AnnaBridge 157:e7ca05fa8600 3715 }
AnnaBridge 157:e7ca05fa8600 3716 #endif
AnnaBridge 157:e7ca05fa8600 3717
AnnaBridge 157:e7ca05fa8600 3718 #endif /* __STM32L0xx_LL_USART_H */
AnnaBridge 157:e7ca05fa8600 3719
AnnaBridge 157:e7ca05fa8600 3720 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/