mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Committer:
mbed_official
Date:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

Full URL: https://github.com/mbedmicro/mbed/commit/ae2d3cdffe70184eb8736d94f76c45c93f4b7724/

Make it possible to build the core mbed library with yotta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 235:685d5f11838f 1 /**
mbed_official 235:685d5f11838f 2 ******************************************************************************
mbed_official 235:685d5f11838f 3 * @file stm32f4xx_hal_usart.h
mbed_official 235:685d5f11838f 4 * @author MCD Application Team
mbed_official 532:fe11edbda85c 5 * @version V1.3.0
mbed_official 532:fe11edbda85c 6 * @date 09-March-2015
mbed_official 235:685d5f11838f 7 * @brief Header file of USART HAL module.
mbed_official 235:685d5f11838f 8 ******************************************************************************
mbed_official 235:685d5f11838f 9 * @attention
mbed_official 235:685d5f11838f 10 *
mbed_official 532:fe11edbda85c 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 235:685d5f11838f 12 *
mbed_official 235:685d5f11838f 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 235:685d5f11838f 14 * are permitted provided that the following conditions are met:
mbed_official 235:685d5f11838f 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 235:685d5f11838f 16 * this list of conditions and the following disclaimer.
mbed_official 235:685d5f11838f 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 235:685d5f11838f 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 235:685d5f11838f 19 * and/or other materials provided with the distribution.
mbed_official 235:685d5f11838f 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 235:685d5f11838f 21 * may be used to endorse or promote products derived from this software
mbed_official 235:685d5f11838f 22 * without specific prior written permission.
mbed_official 235:685d5f11838f 23 *
mbed_official 235:685d5f11838f 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 235:685d5f11838f 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 235:685d5f11838f 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 235:685d5f11838f 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 235:685d5f11838f 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 235:685d5f11838f 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 235:685d5f11838f 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 235:685d5f11838f 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 235:685d5f11838f 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 235:685d5f11838f 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 235:685d5f11838f 34 *
mbed_official 235:685d5f11838f 35 ******************************************************************************
mbed_official 235:685d5f11838f 36 */
mbed_official 235:685d5f11838f 37
mbed_official 235:685d5f11838f 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 235:685d5f11838f 39 #ifndef __STM32F4xx_HAL_USART_H
mbed_official 235:685d5f11838f 40 #define __STM32F4xx_HAL_USART_H
mbed_official 235:685d5f11838f 41
mbed_official 235:685d5f11838f 42 #ifdef __cplusplus
mbed_official 235:685d5f11838f 43 extern "C" {
mbed_official 235:685d5f11838f 44 #endif
mbed_official 235:685d5f11838f 45
mbed_official 235:685d5f11838f 46 /* Includes ------------------------------------------------------------------*/
mbed_official 235:685d5f11838f 47 #include "stm32f4xx_hal_def.h"
mbed_official 235:685d5f11838f 48
mbed_official 235:685d5f11838f 49 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 235:685d5f11838f 50 * @{
mbed_official 235:685d5f11838f 51 */
mbed_official 235:685d5f11838f 52
mbed_official 235:685d5f11838f 53 /** @addtogroup USART
mbed_official 235:685d5f11838f 54 * @{
mbed_official 235:685d5f11838f 55 */
mbed_official 235:685d5f11838f 56
mbed_official 235:685d5f11838f 57 /* Exported types ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 58 /** @defgroup USART_Exported_Types USART Exported Types
mbed_official 532:fe11edbda85c 59 * @{
mbed_official 532:fe11edbda85c 60 */
mbed_official 532:fe11edbda85c 61
mbed_official 235:685d5f11838f 62 /**
mbed_official 235:685d5f11838f 63 * @brief USART Init Structure definition
mbed_official 235:685d5f11838f 64 */
mbed_official 235:685d5f11838f 65 typedef struct
mbed_official 235:685d5f11838f 66 {
mbed_official 235:685d5f11838f 67 uint32_t BaudRate; /*!< This member configures the Usart communication baud rate.
mbed_official 235:685d5f11838f 68 The baud rate is computed using the following formula:
mbed_official 235:685d5f11838f 69 - IntegerDivider = ((PCLKx) / (8 * (husart->Init.BaudRate)))
mbed_official 235:685d5f11838f 70 - FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 8) + 0.5 */
mbed_official 235:685d5f11838f 71
mbed_official 235:685d5f11838f 72 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
mbed_official 235:685d5f11838f 73 This parameter can be a value of @ref USART_Word_Length */
mbed_official 235:685d5f11838f 74
mbed_official 235:685d5f11838f 75 uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
mbed_official 235:685d5f11838f 76 This parameter can be a value of @ref USART_Stop_Bits */
mbed_official 235:685d5f11838f 77
mbed_official 235:685d5f11838f 78 uint32_t Parity; /*!< Specifies the parity mode.
mbed_official 235:685d5f11838f 79 This parameter can be a value of @ref USART_Parity
mbed_official 235:685d5f11838f 80 @note When parity is enabled, the computed parity is inserted
mbed_official 235:685d5f11838f 81 at the MSB position of the transmitted data (9th bit when
mbed_official 235:685d5f11838f 82 the word length is set to 9 data bits; 8th bit when the
mbed_official 235:685d5f11838f 83 word length is set to 8 data bits). */
mbed_official 235:685d5f11838f 84
mbed_official 532:fe11edbda85c 85 uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
mbed_official 235:685d5f11838f 86 This parameter can be a value of @ref USART_Mode */
mbed_official 235:685d5f11838f 87
mbed_official 235:685d5f11838f 88 uint32_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
mbed_official 235:685d5f11838f 89 This parameter can be a value of @ref USART_Clock_Polarity */
mbed_official 235:685d5f11838f 90
mbed_official 235:685d5f11838f 91 uint32_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
mbed_official 235:685d5f11838f 92 This parameter can be a value of @ref USART_Clock_Phase */
mbed_official 235:685d5f11838f 93
mbed_official 235:685d5f11838f 94 uint32_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
mbed_official 235:685d5f11838f 95 data bit (MSB) has to be output on the SCLK pin in synchronous mode.
mbed_official 235:685d5f11838f 96 This parameter can be a value of @ref USART_Last_Bit */
mbed_official 235:685d5f11838f 97 }USART_InitTypeDef;
mbed_official 235:685d5f11838f 98
mbed_official 235:685d5f11838f 99 /**
mbed_official 235:685d5f11838f 100 * @brief HAL State structures definition
mbed_official 235:685d5f11838f 101 */
mbed_official 235:685d5f11838f 102 typedef enum
mbed_official 235:685d5f11838f 103 {
mbed_official 235:685d5f11838f 104 HAL_USART_STATE_RESET = 0x00, /*!< Peripheral is not yet Initialized */
mbed_official 235:685d5f11838f 105 HAL_USART_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 235:685d5f11838f 106 HAL_USART_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 235:685d5f11838f 107 HAL_USART_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 235:685d5f11838f 108 HAL_USART_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 235:685d5f11838f 109 HAL_USART_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission Reception process is ongoing */
mbed_official 235:685d5f11838f 110 HAL_USART_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 235:685d5f11838f 111 HAL_USART_STATE_ERROR = 0x04 /*!< Error */
mbed_official 235:685d5f11838f 112 }HAL_USART_StateTypeDef;
mbed_official 235:685d5f11838f 113
mbed_official 235:685d5f11838f 114 /**
mbed_official 235:685d5f11838f 115 * @brief USART handle Structure definition
mbed_official 235:685d5f11838f 116 */
mbed_official 235:685d5f11838f 117 typedef struct
mbed_official 235:685d5f11838f 118 {
mbed_official 235:685d5f11838f 119 USART_TypeDef *Instance; /* USART registers base address */
mbed_official 235:685d5f11838f 120
mbed_official 235:685d5f11838f 121 USART_InitTypeDef Init; /* Usart communication parameters */
mbed_official 235:685d5f11838f 122
mbed_official 235:685d5f11838f 123 uint8_t *pTxBuffPtr; /* Pointer to Usart Tx transfer Buffer */
mbed_official 235:685d5f11838f 124
mbed_official 235:685d5f11838f 125 uint16_t TxXferSize; /* Usart Tx Transfer size */
mbed_official 235:685d5f11838f 126
mbed_official 235:685d5f11838f 127 __IO uint16_t TxXferCount; /* Usart Tx Transfer Counter */
mbed_official 235:685d5f11838f 128
mbed_official 235:685d5f11838f 129 uint8_t *pRxBuffPtr; /* Pointer to Usart Rx transfer Buffer */
mbed_official 235:685d5f11838f 130
mbed_official 235:685d5f11838f 131 uint16_t RxXferSize; /* Usart Rx Transfer size */
mbed_official 235:685d5f11838f 132
mbed_official 235:685d5f11838f 133 __IO uint16_t RxXferCount; /* Usart Rx Transfer Counter */
mbed_official 235:685d5f11838f 134
mbed_official 235:685d5f11838f 135 DMA_HandleTypeDef *hdmatx; /* Usart Tx DMA Handle parameters */
mbed_official 235:685d5f11838f 136
mbed_official 235:685d5f11838f 137 DMA_HandleTypeDef *hdmarx; /* Usart Rx DMA Handle parameters */
mbed_official 235:685d5f11838f 138
mbed_official 235:685d5f11838f 139 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 235:685d5f11838f 140
mbed_official 235:685d5f11838f 141 __IO HAL_USART_StateTypeDef State; /* Usart communication state */
mbed_official 235:685d5f11838f 142
mbed_official 532:fe11edbda85c 143 __IO uint32_t ErrorCode; /* USART Error code */
mbed_official 532:fe11edbda85c 144
mbed_official 235:685d5f11838f 145 }USART_HandleTypeDef;
mbed_official 532:fe11edbda85c 146 /**
mbed_official 532:fe11edbda85c 147 * @}
mbed_official 532:fe11edbda85c 148 */
mbed_official 235:685d5f11838f 149
mbed_official 235:685d5f11838f 150 /* Exported constants --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 151 /** @defgroup USART_Exported_Constants USART Exported Constants
mbed_official 235:685d5f11838f 152 * @{
mbed_official 235:685d5f11838f 153 */
mbed_official 235:685d5f11838f 154
mbed_official 532:fe11edbda85c 155 /** @defgroup USART_Error_Code USART Error Code
mbed_official 532:fe11edbda85c 156 * @brief USART Error Code
mbed_official 532:fe11edbda85c 157 * @{
mbed_official 532:fe11edbda85c 158 */
mbed_official 532:fe11edbda85c 159 #define HAL_USART_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */
mbed_official 532:fe11edbda85c 160 #define HAL_USART_ERROR_PE ((uint32_t)0x00000001) /*!< Parity error */
mbed_official 532:fe11edbda85c 161 #define HAL_USART_ERROR_NE ((uint32_t)0x00000002) /*!< Noise error */
mbed_official 532:fe11edbda85c 162 #define HAL_USART_ERROR_FE ((uint32_t)0x00000004) /*!< Frame error */
mbed_official 532:fe11edbda85c 163 #define HAL_USART_ERROR_ORE ((uint32_t)0x00000008) /*!< Overrun error */
mbed_official 532:fe11edbda85c 164 #define HAL_USART_ERROR_DMA ((uint32_t)0x00000010) /*!< DMA transfer error */
mbed_official 532:fe11edbda85c 165 /**
mbed_official 532:fe11edbda85c 166 * @}
mbed_official 532:fe11edbda85c 167 */
mbed_official 532:fe11edbda85c 168
mbed_official 532:fe11edbda85c 169 /** @defgroup USART_Word_Length USART Word Length
mbed_official 235:685d5f11838f 170 * @{
mbed_official 235:685d5f11838f 171 */
mbed_official 235:685d5f11838f 172 #define USART_WORDLENGTH_8B ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 173 #define USART_WORDLENGTH_9B ((uint32_t)USART_CR1_M)
mbed_official 235:685d5f11838f 174 /**
mbed_official 235:685d5f11838f 175 * @}
mbed_official 235:685d5f11838f 176 */
mbed_official 235:685d5f11838f 177
mbed_official 532:fe11edbda85c 178 /** @defgroup USART_Stop_Bits USART Number of Stop Bits
mbed_official 235:685d5f11838f 179 * @{
mbed_official 235:685d5f11838f 180 */
mbed_official 235:685d5f11838f 181 #define USART_STOPBITS_1 ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 182 #define USART_STOPBITS_0_5 ((uint32_t)USART_CR2_STOP_0)
mbed_official 235:685d5f11838f 183 #define USART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1)
mbed_official 235:685d5f11838f 184 #define USART_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1))
mbed_official 235:685d5f11838f 185 /**
mbed_official 235:685d5f11838f 186 * @}
mbed_official 235:685d5f11838f 187 */
mbed_official 235:685d5f11838f 188
mbed_official 532:fe11edbda85c 189 /** @defgroup USART_Parity USART Parity
mbed_official 235:685d5f11838f 190 * @{
mbed_official 235:685d5f11838f 191 */
mbed_official 235:685d5f11838f 192 #define USART_PARITY_NONE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 193 #define USART_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
mbed_official 532:fe11edbda85c 194 #define USART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
mbed_official 235:685d5f11838f 195 /**
mbed_official 235:685d5f11838f 196 * @}
mbed_official 235:685d5f11838f 197 */
mbed_official 235:685d5f11838f 198
mbed_official 532:fe11edbda85c 199 /** @defgroup USART_Mode USART Mode
mbed_official 235:685d5f11838f 200 * @{
mbed_official 235:685d5f11838f 201 */
mbed_official 235:685d5f11838f 202 #define USART_MODE_RX ((uint32_t)USART_CR1_RE)
mbed_official 235:685d5f11838f 203 #define USART_MODE_TX ((uint32_t)USART_CR1_TE)
mbed_official 235:685d5f11838f 204 #define USART_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
mbed_official 235:685d5f11838f 205 /**
mbed_official 235:685d5f11838f 206 * @}
mbed_official 235:685d5f11838f 207 */
mbed_official 235:685d5f11838f 208
mbed_official 532:fe11edbda85c 209 /** @defgroup USART_Clock USART Clock
mbed_official 235:685d5f11838f 210 * @{
mbed_official 235:685d5f11838f 211 */
mbed_official 532:fe11edbda85c 212 #define USART_CLOCK_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 213 #define USART_CLOCK_ENABLE ((uint32_t)USART_CR2_CLKEN)
mbed_official 235:685d5f11838f 214 /**
mbed_official 235:685d5f11838f 215 * @}
mbed_official 235:685d5f11838f 216 */
mbed_official 235:685d5f11838f 217
mbed_official 532:fe11edbda85c 218 /** @defgroup USART_Clock_Polarity USART Clock Polarity
mbed_official 235:685d5f11838f 219 * @{
mbed_official 235:685d5f11838f 220 */
mbed_official 235:685d5f11838f 221 #define USART_POLARITY_LOW ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 222 #define USART_POLARITY_HIGH ((uint32_t)USART_CR2_CPOL)
mbed_official 235:685d5f11838f 223 /**
mbed_official 235:685d5f11838f 224 * @}
mbed_official 235:685d5f11838f 225 */
mbed_official 235:685d5f11838f 226
mbed_official 532:fe11edbda85c 227 /** @defgroup USART_Clock_Phase USART Clock Phase
mbed_official 235:685d5f11838f 228 * @{
mbed_official 235:685d5f11838f 229 */
mbed_official 235:685d5f11838f 230 #define USART_PHASE_1EDGE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 231 #define USART_PHASE_2EDGE ((uint32_t)USART_CR2_CPHA)
mbed_official 235:685d5f11838f 232 /**
mbed_official 235:685d5f11838f 233 * @}
mbed_official 235:685d5f11838f 234 */
mbed_official 235:685d5f11838f 235
mbed_official 532:fe11edbda85c 236 /** @defgroup USART_Last_Bit USART Last Bit
mbed_official 235:685d5f11838f 237 * @{
mbed_official 235:685d5f11838f 238 */
mbed_official 235:685d5f11838f 239 #define USART_LASTBIT_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 240 #define USART_LASTBIT_ENABLE ((uint32_t)USART_CR2_LBCL)
mbed_official 235:685d5f11838f 241 /**
mbed_official 235:685d5f11838f 242 * @}
mbed_official 235:685d5f11838f 243 */
mbed_official 235:685d5f11838f 244
mbed_official 532:fe11edbda85c 245 /** @defgroup USART_NACK_State USART NACK State
mbed_official 235:685d5f11838f 246 * @{
mbed_official 235:685d5f11838f 247 */
mbed_official 532:fe11edbda85c 248 #define USART_NACK_ENABLE ((uint32_t)USART_CR3_NACK)
mbed_official 532:fe11edbda85c 249 #define USART_NACK_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 250 /**
mbed_official 235:685d5f11838f 251 * @}
mbed_official 235:685d5f11838f 252 */
mbed_official 235:685d5f11838f 253
mbed_official 532:fe11edbda85c 254 /** @defgroup USART_Flags USART Flags
mbed_official 235:685d5f11838f 255 * Elements values convention: 0xXXXX
mbed_official 235:685d5f11838f 256 * - 0xXXXX : Flag mask in the SR register
mbed_official 235:685d5f11838f 257 * @{
mbed_official 235:685d5f11838f 258 */
mbed_official 235:685d5f11838f 259 #define USART_FLAG_TXE ((uint32_t)0x00000080)
mbed_official 235:685d5f11838f 260 #define USART_FLAG_TC ((uint32_t)0x00000040)
mbed_official 235:685d5f11838f 261 #define USART_FLAG_RXNE ((uint32_t)0x00000020)
mbed_official 235:685d5f11838f 262 #define USART_FLAG_IDLE ((uint32_t)0x00000010)
mbed_official 235:685d5f11838f 263 #define USART_FLAG_ORE ((uint32_t)0x00000008)
mbed_official 235:685d5f11838f 264 #define USART_FLAG_NE ((uint32_t)0x00000004)
mbed_official 235:685d5f11838f 265 #define USART_FLAG_FE ((uint32_t)0x00000002)
mbed_official 235:685d5f11838f 266 #define USART_FLAG_PE ((uint32_t)0x00000001)
mbed_official 235:685d5f11838f 267 /**
mbed_official 235:685d5f11838f 268 * @}
mbed_official 235:685d5f11838f 269 */
mbed_official 235:685d5f11838f 270
mbed_official 532:fe11edbda85c 271 /** @defgroup USART_Interrupt_definition USART Interrupts Definition
mbed_official 235:685d5f11838f 272 * Elements values convention: 0xY000XXXX
mbed_official 235:685d5f11838f 273 * - XXXX : Interrupt mask in the XX register
mbed_official 235:685d5f11838f 274 * - Y : Interrupt source register (2bits)
mbed_official 235:685d5f11838f 275 * - 01: CR1 register
mbed_official 235:685d5f11838f 276 * - 10: CR2 register
mbed_official 235:685d5f11838f 277 * - 11: CR3 register
mbed_official 235:685d5f11838f 278 *
mbed_official 235:685d5f11838f 279 * @{
mbed_official 235:685d5f11838f 280 */
mbed_official 532:fe11edbda85c 281 #define USART_IT_PE ((uint32_t)(USART_CR1_REG_INDEX << 28 | USART_CR1_PEIE))
mbed_official 532:fe11edbda85c 282 #define USART_IT_TXE ((uint32_t)(USART_CR1_REG_INDEX << 28 | USART_CR1_TXEIE))
mbed_official 532:fe11edbda85c 283 #define USART_IT_TC ((uint32_t)(USART_CR1_REG_INDEX << 28 | USART_CR1_TCIE))
mbed_official 532:fe11edbda85c 284 #define USART_IT_RXNE ((uint32_t)(USART_CR1_REG_INDEX << 28 | USART_CR1_RXNEIE))
mbed_official 532:fe11edbda85c 285 #define USART_IT_IDLE ((uint32_t)(USART_CR1_REG_INDEX << 28 | USART_CR1_IDLEIE))
mbed_official 235:685d5f11838f 286
mbed_official 532:fe11edbda85c 287 #define USART_IT_LBD ((uint32_t)(USART_CR2_REG_INDEX << 28 | USART_CR2_LBDIE))
mbed_official 235:685d5f11838f 288
mbed_official 532:fe11edbda85c 289 #define USART_IT_CTS ((uint32_t)(USART_CR3_REG_INDEX << 28 | USART_CR3_CTSIE))
mbed_official 532:fe11edbda85c 290 #define USART_IT_ERR ((uint32_t)(USART_CR3_REG_INDEX << 28 | USART_CR3_EIE))
mbed_official 235:685d5f11838f 291 /**
mbed_official 235:685d5f11838f 292 * @}
mbed_official 235:685d5f11838f 293 */
mbed_official 235:685d5f11838f 294
mbed_official 235:685d5f11838f 295 /**
mbed_official 235:685d5f11838f 296 * @}
mbed_official 235:685d5f11838f 297 */
mbed_official 532:fe11edbda85c 298
mbed_official 235:685d5f11838f 299 /* Exported macro ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 300 /** @defgroup USART_Exported_Macros USART Exported Macros
mbed_official 532:fe11edbda85c 301 * @{
mbed_official 532:fe11edbda85c 302 */
mbed_official 532:fe11edbda85c 303
mbed_official 235:685d5f11838f 304 /** @brief Reset USART handle state
mbed_official 235:685d5f11838f 305 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 306 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 307 * @retval None
mbed_official 235:685d5f11838f 308 */
mbed_official 235:685d5f11838f 309 #define __HAL_USART_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_USART_STATE_RESET)
mbed_official 235:685d5f11838f 310
mbed_official 235:685d5f11838f 311 /** @brief Checks whether the specified Smartcard flag is set or not.
mbed_official 235:685d5f11838f 312 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 313 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 314 * @param __FLAG__: specifies the flag to check.
mbed_official 235:685d5f11838f 315 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 316 * @arg USART_FLAG_TXE: Transmit data register empty flag
mbed_official 235:685d5f11838f 317 * @arg USART_FLAG_TC: Transmission Complete flag
mbed_official 235:685d5f11838f 318 * @arg USART_FLAG_RXNE: Receive data register not empty flag
mbed_official 235:685d5f11838f 319 * @arg USART_FLAG_IDLE: Idle Line detection flag
mbed_official 532:fe11edbda85c 320 * @arg USART_FLAG_ORE: Overrun Error flag
mbed_official 235:685d5f11838f 321 * @arg USART_FLAG_NE: Noise Error flag
mbed_official 235:685d5f11838f 322 * @arg USART_FLAG_FE: Framing Error flag
mbed_official 235:685d5f11838f 323 * @arg USART_FLAG_PE: Parity Error flag
mbed_official 235:685d5f11838f 324 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 235:685d5f11838f 325 */
mbed_official 235:685d5f11838f 326 #define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
mbed_official 235:685d5f11838f 327
mbed_official 235:685d5f11838f 328 /** @brief Clears the specified Smartcard pending flags.
mbed_official 235:685d5f11838f 329 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 330 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 331 * @param __FLAG__: specifies the flag to check.
mbed_official 235:685d5f11838f 332 * This parameter can be any combination of the following values:
mbed_official 235:685d5f11838f 333 * @arg USART_FLAG_TC: Transmission Complete flag.
mbed_official 235:685d5f11838f 334 * @arg USART_FLAG_RXNE: Receive data register not empty flag.
mbed_official 235:685d5f11838f 335 *
mbed_official 532:fe11edbda85c 336 * @note PE (Parity error), FE (Framing error), NE (Noise error), ORE (Overrun
mbed_official 235:685d5f11838f 337 * error) and IDLE (Idle line detected) flags are cleared by software
mbed_official 235:685d5f11838f 338 * sequence: a read operation to USART_SR register followed by a read
mbed_official 235:685d5f11838f 339 * operation to USART_DR register.
mbed_official 235:685d5f11838f 340 * @note RXNE flag can be also cleared by a read to the USART_DR register.
mbed_official 235:685d5f11838f 341 * @note TC flag can be also cleared by software sequence: a read operation to
mbed_official 235:685d5f11838f 342 * USART_SR register followed by a write operation to USART_DR register.
mbed_official 235:685d5f11838f 343 * @note TXE flag is cleared only by a write to the USART_DR register.
mbed_official 235:685d5f11838f 344 *
mbed_official 235:685d5f11838f 345 * @retval None
mbed_official 235:685d5f11838f 346 */
mbed_official 235:685d5f11838f 347 #define __HAL_USART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
mbed_official 235:685d5f11838f 348
mbed_official 235:685d5f11838f 349 /** @brief Clear the USART PE pending flag.
mbed_official 235:685d5f11838f 350 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 351 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 352 * @retval None
mbed_official 235:685d5f11838f 353 */
mbed_official 532:fe11edbda85c 354 #define __HAL_USART_CLEAR_PEFLAG(__HANDLE__) \
mbed_official 532:fe11edbda85c 355 do{ \
mbed_official 532:fe11edbda85c 356 __IO uint32_t tmpreg; \
mbed_official 532:fe11edbda85c 357 tmpreg = (__HANDLE__)->Instance->SR; \
mbed_official 532:fe11edbda85c 358 tmpreg = (__HANDLE__)->Instance->DR; \
mbed_official 532:fe11edbda85c 359 UNUSED(tmpreg); \
mbed_official 532:fe11edbda85c 360 } while(0)
mbed_official 532:fe11edbda85c 361
mbed_official 235:685d5f11838f 362 /** @brief Clear the USART FE pending flag.
mbed_official 235:685d5f11838f 363 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 364 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 365 * @retval None
mbed_official 235:685d5f11838f 366 */
mbed_official 235:685d5f11838f 367 #define __HAL_USART_CLEAR_FEFLAG(__HANDLE__) __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
mbed_official 235:685d5f11838f 368
mbed_official 235:685d5f11838f 369 /** @brief Clear the USART NE pending flag.
mbed_official 235:685d5f11838f 370 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 371 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 372 * @retval None
mbed_official 235:685d5f11838f 373 */
mbed_official 235:685d5f11838f 374 #define __HAL_USART_CLEAR_NEFLAG(__HANDLE__) __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
mbed_official 235:685d5f11838f 375
mbed_official 235:685d5f11838f 376 /** @brief Clear the UART ORE pending flag.
mbed_official 235:685d5f11838f 377 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 378 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 379 * @retval None
mbed_official 235:685d5f11838f 380 */
mbed_official 235:685d5f11838f 381 #define __HAL_USART_CLEAR_OREFLAG(__HANDLE__) __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
mbed_official 235:685d5f11838f 382
mbed_official 235:685d5f11838f 383 /** @brief Clear the USART IDLE pending flag.
mbed_official 235:685d5f11838f 384 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 385 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 386 * @retval None
mbed_official 235:685d5f11838f 387 */
mbed_official 235:685d5f11838f 388 #define __HAL_USART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
mbed_official 235:685d5f11838f 389
mbed_official 532:fe11edbda85c 390 /** @brief Enables or disables the specified USART interrupts.
mbed_official 235:685d5f11838f 391 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 392 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 393 * @param __INTERRUPT__: specifies the USART interrupt source to check.
mbed_official 235:685d5f11838f 394 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 395 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 235:685d5f11838f 396 * @arg USART_IT_TC: Transmission complete interrupt
mbed_official 235:685d5f11838f 397 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 235:685d5f11838f 398 * @arg USART_IT_IDLE: Idle line detection interrupt
mbed_official 235:685d5f11838f 399 * @arg USART_IT_PE: Parity Error interrupt
mbed_official 235:685d5f11838f 400 * @arg USART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 235:685d5f11838f 401 * This parameter can be: ENABLE or DISABLE.
mbed_official 235:685d5f11838f 402 * @retval None
mbed_official 235:685d5f11838f 403 */
mbed_official 532:fe11edbda85c 404 #define __HAL_USART_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28) == 1)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & USART_IT_MASK)): \
mbed_official 532:fe11edbda85c 405 (((__INTERRUPT__) >> 28) == 2)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & USART_IT_MASK)): \
mbed_official 532:fe11edbda85c 406 ((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & USART_IT_MASK)))
mbed_official 532:fe11edbda85c 407 #define __HAL_USART_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28) == 1)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & USART_IT_MASK)): \
mbed_official 532:fe11edbda85c 408 (((__INTERRUPT__) >> 28) == 2)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & USART_IT_MASK)): \
mbed_official 532:fe11edbda85c 409 ((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & USART_IT_MASK)))
mbed_official 235:685d5f11838f 410
mbed_official 532:fe11edbda85c 411 /** @brief Checks whether the specified USART interrupt has occurred or not.
mbed_official 235:685d5f11838f 412 * @param __HANDLE__: specifies the USART Handle.
mbed_official 235:685d5f11838f 413 * This parameter can be USARTx where x: 1, 2, 3 or 6 to select the USART peripheral.
mbed_official 235:685d5f11838f 414 * @param __IT__: specifies the USART interrupt source to check.
mbed_official 235:685d5f11838f 415 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 416 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
mbed_official 235:685d5f11838f 417 * @arg USART_IT_TC: Transmission complete interrupt
mbed_official 235:685d5f11838f 418 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
mbed_official 235:685d5f11838f 419 * @arg USART_IT_IDLE: Idle line detection interrupt
mbed_official 235:685d5f11838f 420 * @arg USART_IT_ERR: Error interrupt
mbed_official 235:685d5f11838f 421 * @arg USART_IT_PE: Parity Error interrupt
mbed_official 235:685d5f11838f 422 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 235:685d5f11838f 423 */
mbed_official 235:685d5f11838f 424 #define __HAL_USART_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28) == 1)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28) == 2)? \
mbed_official 235:685d5f11838f 425 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & USART_IT_MASK))
mbed_official 235:685d5f11838f 426
mbed_official 532:fe11edbda85c 427 /** @brief Macro to enable the USART's one bit sample method
mbed_official 532:fe11edbda85c 428 * @param __HANDLE__: specifies the USART Handle.
mbed_official 532:fe11edbda85c 429 * @retval None
mbed_official 532:fe11edbda85c 430 */
mbed_official 532:fe11edbda85c 431 #define __HAL_USART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
mbed_official 532:fe11edbda85c 432
mbed_official 532:fe11edbda85c 433 /** @brief Macro to disable the USART's one bit sample method
mbed_official 532:fe11edbda85c 434 * @param __HANDLE__: specifies the USART Handle.
mbed_official 532:fe11edbda85c 435 * @retval None
mbed_official 532:fe11edbda85c 436 */
mbed_official 532:fe11edbda85c 437 #define __HAL_USART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))
mbed_official 532:fe11edbda85c 438
mbed_official 532:fe11edbda85c 439 /** @brief Enable USART
mbed_official 532:fe11edbda85c 440 * @param __HANDLE__: specifies the USART Handle.
mbed_official 532:fe11edbda85c 441 * USART Handle selects the USARTx peripheral (USART availability and x value depending on device).
mbed_official 532:fe11edbda85c 442 * @retval None
mbed_official 532:fe11edbda85c 443 */
mbed_official 532:fe11edbda85c 444 #define __HAL_USART_ENABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
mbed_official 235:685d5f11838f 445
mbed_official 532:fe11edbda85c 446 /** @brief Disable USART
mbed_official 532:fe11edbda85c 447 * @param __HANDLE__: specifies the USART Handle.
mbed_official 532:fe11edbda85c 448 * USART Handle selects the USARTx peripheral (USART availability and x value depending on device).
mbed_official 532:fe11edbda85c 449 * @retval None
mbed_official 532:fe11edbda85c 450 */
mbed_official 532:fe11edbda85c 451 #define __HAL_USART_DISABLE(__HANDLE__) ( (__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
mbed_official 532:fe11edbda85c 452
mbed_official 532:fe11edbda85c 453 /**
mbed_official 532:fe11edbda85c 454 * @}
mbed_official 532:fe11edbda85c 455 */
mbed_official 235:685d5f11838f 456 /* Exported functions --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 457 /** @addtogroup USART_Exported_Functions
mbed_official 532:fe11edbda85c 458 * @{
mbed_official 532:fe11edbda85c 459 */
mbed_official 532:fe11edbda85c 460
mbed_official 532:fe11edbda85c 461 /** @addtogroup USART_Exported_Functions_Group1
mbed_official 532:fe11edbda85c 462 * @{
mbed_official 532:fe11edbda85c 463 */
mbed_official 235:685d5f11838f 464 /* Initialization/de-initialization functions **********************************/
mbed_official 235:685d5f11838f 465 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 466 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 467 void HAL_USART_MspInit(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 468 void HAL_USART_MspDeInit(USART_HandleTypeDef *husart);
mbed_official 532:fe11edbda85c 469 /**
mbed_official 532:fe11edbda85c 470 * @}
mbed_official 532:fe11edbda85c 471 */
mbed_official 532:fe11edbda85c 472
mbed_official 532:fe11edbda85c 473 /** @addtogroup USART_Exported_Functions_Group2
mbed_official 532:fe11edbda85c 474 * @{
mbed_official 532:fe11edbda85c 475 */
mbed_official 235:685d5f11838f 476 /* IO operation functions *******************************************************/
mbed_official 235:685d5f11838f 477 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout);
mbed_official 235:685d5f11838f 478 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
mbed_official 235:685d5f11838f 479 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
mbed_official 235:685d5f11838f 480 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
mbed_official 235:685d5f11838f 481 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
mbed_official 235:685d5f11838f 482 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
mbed_official 235:685d5f11838f 483 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
mbed_official 235:685d5f11838f 484 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
mbed_official 235:685d5f11838f 485 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
mbed_official 235:685d5f11838f 486 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 487 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 488 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 489 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 490 void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 491 void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 492 void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 493 void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 494 void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 495 void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart);
mbed_official 532:fe11edbda85c 496 /**
mbed_official 532:fe11edbda85c 497 * @}
mbed_official 532:fe11edbda85c 498 */
mbed_official 235:685d5f11838f 499
mbed_official 532:fe11edbda85c 500 /** @addtogroup USART_Exported_Functions_Group3
mbed_official 532:fe11edbda85c 501 * @{
mbed_official 532:fe11edbda85c 502 */
mbed_official 532:fe11edbda85c 503 /* Peripheral State functions ************************************************/
mbed_official 235:685d5f11838f 504 HAL_USART_StateTypeDef HAL_USART_GetState(USART_HandleTypeDef *husart);
mbed_official 235:685d5f11838f 505 uint32_t HAL_USART_GetError(USART_HandleTypeDef *husart);
mbed_official 532:fe11edbda85c 506 /**
mbed_official 532:fe11edbda85c 507 * @}
mbed_official 532:fe11edbda85c 508 */
mbed_official 532:fe11edbda85c 509
mbed_official 532:fe11edbda85c 510 /**
mbed_official 532:fe11edbda85c 511 * @}
mbed_official 532:fe11edbda85c 512 */
mbed_official 532:fe11edbda85c 513 /* Private types -------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 514 /* Private variables ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 515 /* Private constants ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 516 /** @defgroup USART_Private_Constants USART Private Constants
mbed_official 532:fe11edbda85c 517 * @{
mbed_official 532:fe11edbda85c 518 */
mbed_official 532:fe11edbda85c 519 /** @brief USART interruptions flag mask
mbed_official 532:fe11edbda85c 520 *
mbed_official 532:fe11edbda85c 521 */
mbed_official 532:fe11edbda85c 522 #define USART_IT_MASK ((uint32_t) USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE | USART_CR1_RXNEIE | \
mbed_official 532:fe11edbda85c 523 USART_CR1_IDLEIE | USART_CR2_LBDIE | USART_CR3_CTSIE | USART_CR3_EIE )
mbed_official 532:fe11edbda85c 524
mbed_official 532:fe11edbda85c 525
mbed_official 532:fe11edbda85c 526 #define USART_CR1_REG_INDEX 1
mbed_official 532:fe11edbda85c 527 #define USART_CR2_REG_INDEX 2
mbed_official 532:fe11edbda85c 528 #define USART_CR3_REG_INDEX 3
mbed_official 532:fe11edbda85c 529 /**
mbed_official 532:fe11edbda85c 530 * @}
mbed_official 532:fe11edbda85c 531 */
mbed_official 532:fe11edbda85c 532
mbed_official 532:fe11edbda85c 533 /* Private macros ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 534 /** @defgroup USART_Private_Macros USART Private Macros
mbed_official 532:fe11edbda85c 535 * @{
mbed_official 532:fe11edbda85c 536 */
mbed_official 532:fe11edbda85c 537 #define IS_USART_NACK_STATE(NACK) (((NACK) == USART_NACK_ENABLE) || \
mbed_official 532:fe11edbda85c 538 ((NACK) == USART_NACK_DISABLE))
mbed_official 532:fe11edbda85c 539 #define IS_USART_LASTBIT(LASTBIT) (((LASTBIT) == USART_LASTBIT_DISABLE) || \
mbed_official 532:fe11edbda85c 540 ((LASTBIT) == USART_LASTBIT_ENABLE))
mbed_official 532:fe11edbda85c 541 #define IS_USART_PHASE(CPHA) (((CPHA) == USART_PHASE_1EDGE) || ((CPHA) == USART_PHASE_2EDGE))
mbed_official 532:fe11edbda85c 542 #define IS_USART_POLARITY(CPOL) (((CPOL) == USART_POLARITY_LOW) || ((CPOL) == USART_POLARITY_HIGH))
mbed_official 532:fe11edbda85c 543 #define IS_USART_CLOCK(CLOCK) (((CLOCK) == USART_CLOCK_DISABLE) || \
mbed_official 532:fe11edbda85c 544 ((CLOCK) == USART_CLOCK_ENABLE))
mbed_official 532:fe11edbda85c 545 #define IS_USART_WORD_LENGTH(LENGTH) (((LENGTH) == USART_WORDLENGTH_8B) || \
mbed_official 532:fe11edbda85c 546 ((LENGTH) == USART_WORDLENGTH_9B))
mbed_official 532:fe11edbda85c 547 #define IS_USART_STOPBITS(STOPBITS) (((STOPBITS) == USART_STOPBITS_1) || \
mbed_official 532:fe11edbda85c 548 ((STOPBITS) == USART_STOPBITS_0_5) || \
mbed_official 532:fe11edbda85c 549 ((STOPBITS) == USART_STOPBITS_1_5) || \
mbed_official 532:fe11edbda85c 550 ((STOPBITS) == USART_STOPBITS_2))
mbed_official 532:fe11edbda85c 551 #define IS_USART_PARITY(PARITY) (((PARITY) == USART_PARITY_NONE) || \
mbed_official 532:fe11edbda85c 552 ((PARITY) == USART_PARITY_EVEN) || \
mbed_official 532:fe11edbda85c 553 ((PARITY) == USART_PARITY_ODD))
mbed_official 532:fe11edbda85c 554 #define IS_USART_MODE(MODE) ((((MODE) & (uint32_t)0xFFF3) == 0x00) && ((MODE) != (uint32_t)0x00))
mbed_official 532:fe11edbda85c 555 #define IS_USART_BAUDRATE(BAUDRATE) ((BAUDRATE) < 10500001)
mbed_official 532:fe11edbda85c 556
mbed_official 532:fe11edbda85c 557 #define USART_DIV(_PCLK_, _BAUD_) (((_PCLK_)*25)/(2*(_BAUD_)))
mbed_official 532:fe11edbda85c 558 #define USART_DIVMANT(_PCLK_, _BAUD_) (USART_DIV((_PCLK_), (_BAUD_))/100)
mbed_official 532:fe11edbda85c 559 #define USART_DIVFRAQ(_PCLK_, _BAUD_) (((USART_DIV((_PCLK_), (_BAUD_)) - (USART_DIVMANT((_PCLK_), (_BAUD_)) * 100)) * 16 + 50) / 100)
mbed_official 532:fe11edbda85c 560 #define USART_BRR(_PCLK_, _BAUD_) ((USART_DIVMANT((_PCLK_), (_BAUD_)) << 4)|(USART_DIVFRAQ((_PCLK_), (_BAUD_)) & 0x0F))
mbed_official 532:fe11edbda85c 561 /**
mbed_official 532:fe11edbda85c 562 * @}
mbed_official 532:fe11edbda85c 563 */
mbed_official 532:fe11edbda85c 564
mbed_official 532:fe11edbda85c 565 /* Private functions ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 566 /** @defgroup USART_Private_Functions USART Private Functions
mbed_official 532:fe11edbda85c 567 * @{
mbed_official 532:fe11edbda85c 568 */
mbed_official 532:fe11edbda85c 569
mbed_official 532:fe11edbda85c 570 /**
mbed_official 532:fe11edbda85c 571 * @}
mbed_official 532:fe11edbda85c 572 */
mbed_official 235:685d5f11838f 573
mbed_official 235:685d5f11838f 574 /**
mbed_official 235:685d5f11838f 575 * @}
mbed_official 235:685d5f11838f 576 */
mbed_official 235:685d5f11838f 577
mbed_official 235:685d5f11838f 578 /**
mbed_official 235:685d5f11838f 579 * @}
mbed_official 235:685d5f11838f 580 */
mbed_official 235:685d5f11838f 581
mbed_official 235:685d5f11838f 582 #ifdef __cplusplus
mbed_official 235:685d5f11838f 583 }
mbed_official 235:685d5f11838f 584 #endif
mbed_official 235:685d5f11838f 585
mbed_official 235:685d5f11838f 586 #endif /* __STM32F4xx_HAL_USART_H */
mbed_official 235:685d5f11838f 587
mbed_official 235:685d5f11838f 588 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/