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:
<>
Date:
Tue Mar 14 16:20:51 2017 +0000
Revision:
138:093f2bd7b9eb
Parent:
135:176b8275d35d
Child:
139:856d2700e60b
Release 138 of the mbed library

Ports for Upcoming Targets


Fixes and Changes

3716: fix for issue #3715: correction in startup files for ARM and IAR, alignment of system_stm32f429xx.c files https://github.com/ARMmbed/mbed-os/pull/3716
3741: STM32 remove warning in hal_tick_32b.c file https://github.com/ARMmbed/mbed-os/pull/3741
3780: STM32L4 : Fix GPIO G port compatibility https://github.com/ARMmbed/mbed-os/pull/3780
3831: NCS36510: SPISLAVE enabled (Conflict resolved) https://github.com/ARMmbed/mbed-os/pull/3831
3836: Allow to redefine nRF's PSTORAGE_NUM_OF_PAGES outside of the mbed-os https://github.com/ARMmbed/mbed-os/pull/3836
3840: STM32: gpio SPEED - always set High Speed by default https://github.com/ARMmbed/mbed-os/pull/3840
3844: STM32 GPIO: Typo correction. Update comment (GPIO_IP_WITHOUT_BRR) https://github.com/ARMmbed/mbed-os/pull/3844
3850: STM32: change spi error to debug warning https://github.com/ARMmbed/mbed-os/pull/3850
3860: Define GPIO_IP_WITHOUT_BRR for xDot platform https://github.com/ARMmbed/mbed-os/pull/3860
3880: DISCO_F469NI: allow the use of CAN2 instance when CAN1 is not activated https://github.com/ARMmbed/mbed-os/pull/3880
3795: Fix pwm period calc https://github.com/ARMmbed/mbed-os/pull/3795
3828: STM32 CAN API: correct format and type https://github.com/ARMmbed/mbed-os/pull/3828
3842: TARGET_NRF: corrected spi_init() to properly handle re-initialization https://github.com/ARMmbed/mbed-os/pull/3842
3843: STM32L476xG: set APB2 clock to 80MHz (instead of 40MHz) https://github.com/ARMmbed/mbed-os/pull/3843
3879: NUCLEO_F446ZE: Add missing AnalogIn pins on PF_3, PF_5 and PF_10. https://github.com/ARMmbed/mbed-os/pull/3879
3902: Fix heap and stack size for NUCLEO_F746ZG https://github.com/ARMmbed/mbed-os/pull/3902
3829: can_write(): return error code when no tx mailboxes are available https://github.com/ARMmbed/mbed-os/pull/3829

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 126:abea610beb85 1 /**
AnnaBridge 126:abea610beb85 2 ******************************************************************************
AnnaBridge 126:abea610beb85 3 * @file stm32f7xx_hal_usart.h
AnnaBridge 126:abea610beb85 4 * @author MCD Application Team
<> 135:176b8275d35d 5 * @version V1.1.2
<> 135:176b8275d35d 6 * @date 23-September-2016
AnnaBridge 126:abea610beb85 7 * @brief Header file of USART HAL module.
AnnaBridge 126:abea610beb85 8 ******************************************************************************
AnnaBridge 126:abea610beb85 9 * @attention
AnnaBridge 126:abea610beb85 10 *
AnnaBridge 126:abea610beb85 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 126:abea610beb85 12 *
AnnaBridge 126:abea610beb85 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 126:abea610beb85 14 * are permitted provided that the following conditions are met:
AnnaBridge 126:abea610beb85 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 126:abea610beb85 16 * this list of conditions and the following disclaimer.
AnnaBridge 126:abea610beb85 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 126:abea610beb85 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 126:abea610beb85 19 * and/or other materials provided with the distribution.
AnnaBridge 126:abea610beb85 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 126:abea610beb85 21 * may be used to endorse or promote products derived from this software
AnnaBridge 126:abea610beb85 22 * without specific prior written permission.
AnnaBridge 126:abea610beb85 23 *
AnnaBridge 126:abea610beb85 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 126:abea610beb85 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 126:abea610beb85 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 126:abea610beb85 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 126:abea610beb85 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 126:abea610beb85 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 126:abea610beb85 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 126:abea610beb85 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 126:abea610beb85 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 126:abea610beb85 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 126:abea610beb85 34 *
AnnaBridge 126:abea610beb85 35 ******************************************************************************
AnnaBridge 126:abea610beb85 36 */
AnnaBridge 126:abea610beb85 37
AnnaBridge 126:abea610beb85 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 126:abea610beb85 39 #ifndef __STM32F7xx_HAL_USART_H
AnnaBridge 126:abea610beb85 40 #define __STM32F7xx_HAL_USART_H
AnnaBridge 126:abea610beb85 41
AnnaBridge 126:abea610beb85 42 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 43 extern "C" {
AnnaBridge 126:abea610beb85 44 #endif
AnnaBridge 126:abea610beb85 45
AnnaBridge 126:abea610beb85 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 47 #include "stm32f7xx_hal_def.h"
AnnaBridge 126:abea610beb85 48
AnnaBridge 126:abea610beb85 49 /** @addtogroup STM32F7xx_HAL_Driver
AnnaBridge 126:abea610beb85 50 * @{
AnnaBridge 126:abea610beb85 51 */
AnnaBridge 126:abea610beb85 52
AnnaBridge 126:abea610beb85 53 /** @addtogroup USART
AnnaBridge 126:abea610beb85 54 * @{
AnnaBridge 126:abea610beb85 55 */
AnnaBridge 126:abea610beb85 56
AnnaBridge 126:abea610beb85 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 58 /** @defgroup USART_Exported_Types USART Exported Types
AnnaBridge 126:abea610beb85 59 * @{
AnnaBridge 126:abea610beb85 60 */
AnnaBridge 126:abea610beb85 61
AnnaBridge 126:abea610beb85 62 /**
AnnaBridge 126:abea610beb85 63 * @brief USART Init Structure definition
AnnaBridge 126:abea610beb85 64 */
AnnaBridge 126:abea610beb85 65 typedef struct
AnnaBridge 126:abea610beb85 66 {
AnnaBridge 126:abea610beb85 67 uint32_t BaudRate; /*!< This member configures the Usart communication baud rate.
AnnaBridge 126:abea610beb85 68 The baud rate is computed using the following formula:
AnnaBridge 126:abea610beb85 69 Baud Rate Register = ((PCLKx) / ((huart->Init.BaudRate))) */
AnnaBridge 126:abea610beb85 70
AnnaBridge 126:abea610beb85 71 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
AnnaBridge 126:abea610beb85 72 This parameter can be a value of @ref USARTEx_Word_Length */
AnnaBridge 126:abea610beb85 73
AnnaBridge 126:abea610beb85 74 uint32_t StopBits; /*!< Specifies the number of stop bits transmitted.
AnnaBridge 126:abea610beb85 75 This parameter can be a value of @ref USART_Stop_Bits */
AnnaBridge 126:abea610beb85 76
AnnaBridge 126:abea610beb85 77 uint32_t Parity; /*!< Specifies the parity mode.
AnnaBridge 126:abea610beb85 78 This parameter can be a value of @ref USART_Parity
AnnaBridge 126:abea610beb85 79 @note When parity is enabled, the computed parity is inserted
AnnaBridge 126:abea610beb85 80 at the MSB position of the transmitted data (9th bit when
AnnaBridge 126:abea610beb85 81 the word length is set to 9 data bits; 8th bit when the
AnnaBridge 126:abea610beb85 82 word length is set to 8 data bits). */
AnnaBridge 126:abea610beb85 83
AnnaBridge 126:abea610beb85 84 uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
AnnaBridge 126:abea610beb85 85 This parameter can be a value of @ref USART_Mode */
AnnaBridge 126:abea610beb85 86
AnnaBridge 126:abea610beb85 87 uint32_t OverSampling; /*!< Specifies whether the Over sampling 8 is enabled or disabled, to achieve higher speed (up to fPCLK/8).
AnnaBridge 126:abea610beb85 88 This parameter can be a value of @ref USART_Over_Sampling */
AnnaBridge 126:abea610beb85 89
AnnaBridge 126:abea610beb85 90 uint32_t CLKPolarity; /*!< Specifies the steady state of the serial clock.
AnnaBridge 126:abea610beb85 91 This parameter can be a value of @ref USART_Clock_Polarity */
AnnaBridge 126:abea610beb85 92
AnnaBridge 126:abea610beb85 93 uint32_t CLKPhase; /*!< Specifies the clock transition on which the bit capture is made.
AnnaBridge 126:abea610beb85 94 This parameter can be a value of @ref USART_Clock_Phase */
AnnaBridge 126:abea610beb85 95
AnnaBridge 126:abea610beb85 96 uint32_t CLKLastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted
AnnaBridge 126:abea610beb85 97 data bit (MSB) has to be output on the SCLK pin in synchronous mode.
AnnaBridge 126:abea610beb85 98 This parameter can be a value of @ref USART_Last_Bit */
AnnaBridge 126:abea610beb85 99 }USART_InitTypeDef;
AnnaBridge 126:abea610beb85 100
AnnaBridge 126:abea610beb85 101 /**
AnnaBridge 126:abea610beb85 102 * @brief HAL USART State structures definition
AnnaBridge 126:abea610beb85 103 */
AnnaBridge 126:abea610beb85 104 typedef enum
AnnaBridge 126:abea610beb85 105 {
AnnaBridge 126:abea610beb85 106 HAL_USART_STATE_RESET = 0x00U, /*!< Peripheral is not initialized */
AnnaBridge 126:abea610beb85 107 HAL_USART_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
AnnaBridge 126:abea610beb85 108 HAL_USART_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
AnnaBridge 126:abea610beb85 109 HAL_USART_STATE_BUSY_TX = 0x12U, /*!< Data Transmission process is ongoing */
AnnaBridge 126:abea610beb85 110 HAL_USART_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing */
AnnaBridge 126:abea610beb85 111 HAL_USART_STATE_BUSY_TX_RX = 0x32U, /*!< Data Transmission Reception process is ongoing */
AnnaBridge 126:abea610beb85 112 HAL_USART_STATE_TIMEOUT = 0x03U, /*!< Timeout state */
AnnaBridge 126:abea610beb85 113 HAL_USART_STATE_ERROR = 0x04U /*!< Error */
AnnaBridge 126:abea610beb85 114 }HAL_USART_StateTypeDef;
AnnaBridge 126:abea610beb85 115
AnnaBridge 126:abea610beb85 116
AnnaBridge 126:abea610beb85 117 /**
AnnaBridge 126:abea610beb85 118 * @brief USART clock sources definitions
AnnaBridge 126:abea610beb85 119 */
AnnaBridge 126:abea610beb85 120 typedef enum
AnnaBridge 126:abea610beb85 121 {
AnnaBridge 126:abea610beb85 122 USART_CLOCKSOURCE_PCLK1 = 0x00U, /*!< PCLK1 clock source */
AnnaBridge 126:abea610beb85 123 USART_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */
AnnaBridge 126:abea610beb85 124 USART_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */
AnnaBridge 126:abea610beb85 125 USART_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */
AnnaBridge 126:abea610beb85 126 USART_CLOCKSOURCE_LSE = 0x08U, /*!< LSE clock source */
AnnaBridge 126:abea610beb85 127 USART_CLOCKSOURCE_UNDEFINED = 0x10U /*!< Undefined clock source */
AnnaBridge 126:abea610beb85 128 }USART_ClockSourceTypeDef;
AnnaBridge 126:abea610beb85 129
AnnaBridge 126:abea610beb85 130
AnnaBridge 126:abea610beb85 131 /**
AnnaBridge 126:abea610beb85 132 * @brief USART handle Structure definition
AnnaBridge 126:abea610beb85 133 */
AnnaBridge 126:abea610beb85 134 typedef struct
AnnaBridge 126:abea610beb85 135 {
AnnaBridge 126:abea610beb85 136 USART_TypeDef *Instance; /*!< USART registers base address */
AnnaBridge 126:abea610beb85 137
AnnaBridge 126:abea610beb85 138 USART_InitTypeDef Init; /*!< USART communication parameters */
AnnaBridge 126:abea610beb85 139
AnnaBridge 126:abea610beb85 140 uint8_t *pTxBuffPtr; /*!< Pointer to USART Tx transfer Buffer */
AnnaBridge 126:abea610beb85 141
AnnaBridge 126:abea610beb85 142 uint16_t TxXferSize; /*!< USART Tx Transfer size */
AnnaBridge 126:abea610beb85 143
<> 135:176b8275d35d 144 __IO uint16_t TxXferCount; /*!< USART Tx Transfer Counter */
AnnaBridge 126:abea610beb85 145
AnnaBridge 126:abea610beb85 146 uint8_t *pRxBuffPtr; /*!< Pointer to USART Rx transfer Buffer */
AnnaBridge 126:abea610beb85 147
AnnaBridge 126:abea610beb85 148 uint16_t RxXferSize; /*!< USART Rx Transfer size */
AnnaBridge 126:abea610beb85 149
<> 135:176b8275d35d 150 __IO uint16_t RxXferCount; /*!< USART Rx Transfer Counter */
AnnaBridge 126:abea610beb85 151
AnnaBridge 126:abea610beb85 152 uint16_t Mask; /*!< USART Rx RDR register mask */
AnnaBridge 126:abea610beb85 153
AnnaBridge 126:abea610beb85 154 DMA_HandleTypeDef *hdmatx; /*!< USART Tx DMA Handle parameters */
AnnaBridge 126:abea610beb85 155
AnnaBridge 126:abea610beb85 156 DMA_HandleTypeDef *hdmarx; /*!< USART Rx DMA Handle parameters */
AnnaBridge 126:abea610beb85 157
AnnaBridge 126:abea610beb85 158 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 126:abea610beb85 159
AnnaBridge 126:abea610beb85 160 HAL_USART_StateTypeDef State; /*!< USART communication state */
AnnaBridge 126:abea610beb85 161
AnnaBridge 126:abea610beb85 162 __IO uint32_t ErrorCode; /*!< USART Error code */
AnnaBridge 126:abea610beb85 163
AnnaBridge 126:abea610beb85 164 }USART_HandleTypeDef;
AnnaBridge 126:abea610beb85 165 /**
AnnaBridge 126:abea610beb85 166 * @}
AnnaBridge 126:abea610beb85 167 */
AnnaBridge 126:abea610beb85 168
AnnaBridge 126:abea610beb85 169 /* Exported constants --------------------------------------------------------*/
AnnaBridge 126:abea610beb85 170 /** @defgroup USART_Exported_Constants USART Exported Constants
AnnaBridge 126:abea610beb85 171 * @{
AnnaBridge 126:abea610beb85 172 */
AnnaBridge 126:abea610beb85 173
AnnaBridge 126:abea610beb85 174 /** @defgroup USART_Error_Code USART Error Code
AnnaBridge 126:abea610beb85 175 * @brief USART Error Code
AnnaBridge 126:abea610beb85 176 * @{
AnnaBridge 126:abea610beb85 177 */
AnnaBridge 126:abea610beb85 178 #define HAL_USART_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */
AnnaBridge 126:abea610beb85 179 #define HAL_USART_ERROR_PE ((uint32_t)0x00000001U) /*!< Parity error */
AnnaBridge 126:abea610beb85 180 #define HAL_USART_ERROR_NE ((uint32_t)0x00000002U) /*!< Noise error */
AnnaBridge 126:abea610beb85 181 #define HAL_USART_ERROR_FE ((uint32_t)0x00000004U) /*!< Frame error */
AnnaBridge 126:abea610beb85 182 #define HAL_USART_ERROR_ORE ((uint32_t)0x00000008U) /*!< Overrun error */
AnnaBridge 126:abea610beb85 183 #define HAL_USART_ERROR_DMA ((uint32_t)0x00000010U) /*!< DMA transfer error */
AnnaBridge 126:abea610beb85 184 /**
AnnaBridge 126:abea610beb85 185 * @}
AnnaBridge 126:abea610beb85 186 */
AnnaBridge 126:abea610beb85 187
AnnaBridge 126:abea610beb85 188 /** @defgroup USART_Stop_Bits USART Number of Stop Bits
AnnaBridge 126:abea610beb85 189 * @{
AnnaBridge 126:abea610beb85 190 */
AnnaBridge 126:abea610beb85 191 #define USART_STOPBITS_1 ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 192 #define USART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1)
AnnaBridge 126:abea610beb85 193 #define USART_STOPBITS_1_5 ((uint32_t)(USART_CR2_STOP_0 | USART_CR2_STOP_1))
AnnaBridge 126:abea610beb85 194 /**
AnnaBridge 126:abea610beb85 195 * @}
AnnaBridge 126:abea610beb85 196 */
AnnaBridge 126:abea610beb85 197
AnnaBridge 126:abea610beb85 198 /** @defgroup USART_Parity USART Parity
AnnaBridge 126:abea610beb85 199 * @{
AnnaBridge 126:abea610beb85 200 */
AnnaBridge 126:abea610beb85 201 #define USART_PARITY_NONE ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 202 #define USART_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
AnnaBridge 126:abea610beb85 203 #define USART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
AnnaBridge 126:abea610beb85 204 /**
AnnaBridge 126:abea610beb85 205 * @}
AnnaBridge 126:abea610beb85 206 */
AnnaBridge 126:abea610beb85 207
AnnaBridge 126:abea610beb85 208 /** @defgroup USART_Mode USART Mode
AnnaBridge 126:abea610beb85 209 * @{
AnnaBridge 126:abea610beb85 210 */
AnnaBridge 126:abea610beb85 211 #define USART_MODE_RX ((uint32_t)USART_CR1_RE)
AnnaBridge 126:abea610beb85 212 #define USART_MODE_TX ((uint32_t)USART_CR1_TE)
AnnaBridge 126:abea610beb85 213 #define USART_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
AnnaBridge 126:abea610beb85 214 /**
AnnaBridge 126:abea610beb85 215 * @}
AnnaBridge 126:abea610beb85 216 */
AnnaBridge 126:abea610beb85 217
AnnaBridge 126:abea610beb85 218 /** @defgroup USART_Over_Sampling USART Over Sampling
AnnaBridge 126:abea610beb85 219 * @{
AnnaBridge 126:abea610beb85 220 */
AnnaBridge 126:abea610beb85 221 #define USART_OVERSAMPLING_16 ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 222 #define USART_OVERSAMPLING_8 ((uint32_t)USART_CR1_OVER8)
AnnaBridge 126:abea610beb85 223 /**
AnnaBridge 126:abea610beb85 224 * @}
AnnaBridge 126:abea610beb85 225 */
AnnaBridge 126:abea610beb85 226 /** @defgroup USART_Clock USART Clock
AnnaBridge 126:abea610beb85 227 * @{
AnnaBridge 126:abea610beb85 228 */
AnnaBridge 126:abea610beb85 229 #define USART_CLOCK_DISABLE ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 230 #define USART_CLOCK_ENABLE ((uint32_t)USART_CR2_CLKEN)
AnnaBridge 126:abea610beb85 231 /**
AnnaBridge 126:abea610beb85 232 * @}
AnnaBridge 126:abea610beb85 233 */
AnnaBridge 126:abea610beb85 234
AnnaBridge 126:abea610beb85 235 /** @defgroup USART_Clock_Polarity USART Clock Polarity
AnnaBridge 126:abea610beb85 236 * @{
AnnaBridge 126:abea610beb85 237 */
AnnaBridge 126:abea610beb85 238 #define USART_POLARITY_LOW ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 239 #define USART_POLARITY_HIGH ((uint32_t)USART_CR2_CPOL)
AnnaBridge 126:abea610beb85 240 /**
AnnaBridge 126:abea610beb85 241 * @}
AnnaBridge 126:abea610beb85 242 */
AnnaBridge 126:abea610beb85 243
AnnaBridge 126:abea610beb85 244 /** @defgroup USART_Clock_Phase USART Clock Phase
AnnaBridge 126:abea610beb85 245 * @{
AnnaBridge 126:abea610beb85 246 */
AnnaBridge 126:abea610beb85 247 #define USART_PHASE_1EDGE ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 248 #define USART_PHASE_2EDGE ((uint32_t)USART_CR2_CPHA)
AnnaBridge 126:abea610beb85 249 /**
AnnaBridge 126:abea610beb85 250 * @}
AnnaBridge 126:abea610beb85 251 */
AnnaBridge 126:abea610beb85 252
AnnaBridge 126:abea610beb85 253 /** @defgroup USART_Last_Bit USART Last Bit
AnnaBridge 126:abea610beb85 254 * @{
AnnaBridge 126:abea610beb85 255 */
AnnaBridge 126:abea610beb85 256 #define USART_LASTBIT_DISABLE ((uint32_t)0x0000U)
AnnaBridge 126:abea610beb85 257 #define USART_LASTBIT_ENABLE ((uint32_t)USART_CR2_LBCL)
AnnaBridge 126:abea610beb85 258 /**
AnnaBridge 126:abea610beb85 259 * @}
AnnaBridge 126:abea610beb85 260 */
AnnaBridge 126:abea610beb85 261
AnnaBridge 126:abea610beb85 262 /** @defgroup USART_Request_Parameters USART Request Parameters
AnnaBridge 126:abea610beb85 263 * @{
AnnaBridge 126:abea610beb85 264 */
AnnaBridge 126:abea610beb85 265 #define USART_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
AnnaBridge 126:abea610beb85 266 #define USART_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
AnnaBridge 126:abea610beb85 267 /**
AnnaBridge 126:abea610beb85 268 * @}
AnnaBridge 126:abea610beb85 269 */
AnnaBridge 126:abea610beb85 270
AnnaBridge 126:abea610beb85 271 /** @defgroup USART_Flags USART Flags
AnnaBridge 126:abea610beb85 272 * Elements values convention: 0xXXXX
AnnaBridge 126:abea610beb85 273 * - 0xXXXX : Flag mask in the ISR register
AnnaBridge 126:abea610beb85 274 * @{
AnnaBridge 126:abea610beb85 275 */
AnnaBridge 126:abea610beb85 276 #define USART_FLAG_REACK ((uint32_t)0x00400000U)
AnnaBridge 126:abea610beb85 277 #define USART_FLAG_TEACK ((uint32_t)0x00200000U)
AnnaBridge 126:abea610beb85 278 #define USART_FLAG_BUSY ((uint32_t)0x00010000U)
AnnaBridge 126:abea610beb85 279 #define USART_FLAG_CTS ((uint32_t)0x00000400U)
AnnaBridge 126:abea610beb85 280 #define USART_FLAG_CTSIF ((uint32_t)0x00000200U)
AnnaBridge 126:abea610beb85 281 #define USART_FLAG_LBDF ((uint32_t)0x00000100U)
AnnaBridge 126:abea610beb85 282 #define USART_FLAG_TXE ((uint32_t)0x00000080U)
AnnaBridge 126:abea610beb85 283 #define USART_FLAG_TC ((uint32_t)0x00000040U)
AnnaBridge 126:abea610beb85 284 #define USART_FLAG_RXNE ((uint32_t)0x00000020U)
AnnaBridge 126:abea610beb85 285 #define USART_FLAG_IDLE ((uint32_t)0x00000010U)
AnnaBridge 126:abea610beb85 286 #define USART_FLAG_ORE ((uint32_t)0x00000008U)
AnnaBridge 126:abea610beb85 287 #define USART_FLAG_NE ((uint32_t)0x00000004U)
AnnaBridge 126:abea610beb85 288 #define USART_FLAG_FE ((uint32_t)0x00000002U)
AnnaBridge 126:abea610beb85 289 #define USART_FLAG_PE ((uint32_t)0x00000001U)
AnnaBridge 126:abea610beb85 290 /**
AnnaBridge 126:abea610beb85 291 * @}
AnnaBridge 126:abea610beb85 292 */
AnnaBridge 126:abea610beb85 293
AnnaBridge 126:abea610beb85 294 /** @defgroup USART_Interrupt_definition USART Interrupts Definition
AnnaBridge 126:abea610beb85 295 * Elements values convention: 0000ZZZZ0XXYYYYYb
AnnaBridge 126:abea610beb85 296 * - YYYYY : Interrupt source position in the XX register (5bits)
AnnaBridge 126:abea610beb85 297 * - XX : Interrupt source register (2bits)
AnnaBridge 126:abea610beb85 298 * - 01: CR1 register
AnnaBridge 126:abea610beb85 299 * - 10: CR2 register
AnnaBridge 126:abea610beb85 300 * - 11: CR3 register
AnnaBridge 126:abea610beb85 301 * - ZZZZ : Flag position in the ISR register(4bits)
AnnaBridge 126:abea610beb85 302 * @{
AnnaBridge 126:abea610beb85 303 */
AnnaBridge 126:abea610beb85 304
AnnaBridge 126:abea610beb85 305 #define USART_IT_PE ((uint16_t)0x0028U)
AnnaBridge 126:abea610beb85 306 #define USART_IT_TXE ((uint16_t)0x0727U)
AnnaBridge 126:abea610beb85 307 #define USART_IT_TC ((uint16_t)0x0626U)
AnnaBridge 126:abea610beb85 308 #define USART_IT_RXNE ((uint16_t)0x0525U)
AnnaBridge 126:abea610beb85 309 #define USART_IT_IDLE ((uint16_t)0x0424U)
AnnaBridge 126:abea610beb85 310 #define USART_IT_ERR ((uint16_t)0x0060U)
AnnaBridge 126:abea610beb85 311
AnnaBridge 126:abea610beb85 312 #define USART_IT_ORE ((uint16_t)0x0300U)
AnnaBridge 126:abea610beb85 313 #define USART_IT_NE ((uint16_t)0x0200U)
AnnaBridge 126:abea610beb85 314 #define USART_IT_FE ((uint16_t)0x0100U)
AnnaBridge 126:abea610beb85 315 /**
AnnaBridge 126:abea610beb85 316 * @}
AnnaBridge 126:abea610beb85 317 */
AnnaBridge 126:abea610beb85 318
AnnaBridge 126:abea610beb85 319 /** @defgroup USART_IT_CLEAR_Flags USART Interruption Clear Flags
AnnaBridge 126:abea610beb85 320 * @{
AnnaBridge 126:abea610beb85 321 */
AnnaBridge 126:abea610beb85 322 #define USART_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
AnnaBridge 126:abea610beb85 323 #define USART_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
AnnaBridge 126:abea610beb85 324 #define USART_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
AnnaBridge 126:abea610beb85 325 #define USART_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
AnnaBridge 126:abea610beb85 326 #define USART_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected Clear Flag */
AnnaBridge 126:abea610beb85 327 #define USART_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */
AnnaBridge 126:abea610beb85 328 #define USART_CLEAR_CTSF USART_ICR_CTSCF /*!< CTS Interrupt Clear Flag */
AnnaBridge 126:abea610beb85 329 /**
AnnaBridge 126:abea610beb85 330 * @}
AnnaBridge 126:abea610beb85 331 */
AnnaBridge 126:abea610beb85 332
AnnaBridge 126:abea610beb85 333 /**
AnnaBridge 126:abea610beb85 334 * @}
AnnaBridge 126:abea610beb85 335 */
AnnaBridge 126:abea610beb85 336
AnnaBridge 126:abea610beb85 337 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 126:abea610beb85 338 /** @defgroup USART_Exported_Macros USART Exported Macros
AnnaBridge 126:abea610beb85 339 * @{
AnnaBridge 126:abea610beb85 340 */
AnnaBridge 126:abea610beb85 341
AnnaBridge 126:abea610beb85 342 /** @brief Reset USART handle state
AnnaBridge 126:abea610beb85 343 * @param __HANDLE__: USART handle.
AnnaBridge 126:abea610beb85 344 * @retval None
AnnaBridge 126:abea610beb85 345 */
AnnaBridge 126:abea610beb85 346 #define __HAL_USART_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_USART_STATE_RESET)
AnnaBridge 126:abea610beb85 347
AnnaBridge 126:abea610beb85 348 /** @brief Checks whether the specified USART flag is set or not.
AnnaBridge 126:abea610beb85 349 * @param __HANDLE__: specifies the USART Handle
AnnaBridge 126:abea610beb85 350 * @param __FLAG__: specifies the flag to check.
AnnaBridge 126:abea610beb85 351 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 352 * @arg USART_FLAG_REACK: Receive enable acknowledge flag
AnnaBridge 126:abea610beb85 353 * @arg USART_FLAG_TEACK: Transmit enable acknowledge flag
AnnaBridge 126:abea610beb85 354 * @arg USART_FLAG_BUSY: Busy flag
AnnaBridge 126:abea610beb85 355 * @arg USART_FLAG_CTS: CTS Change flag
AnnaBridge 126:abea610beb85 356 * @arg USART_FLAG_TXE: Transmit data register empty flag
AnnaBridge 126:abea610beb85 357 * @arg USART_FLAG_TC: Transmission Complete flag
AnnaBridge 126:abea610beb85 358 * @arg USART_FLAG_RXNE: Receive data register not empty flag
AnnaBridge 126:abea610beb85 359 * @arg USART_FLAG_IDLE: Idle Line detection flag
AnnaBridge 126:abea610beb85 360 * @arg USART_FLAG_ORE: OverRun Error flag
AnnaBridge 126:abea610beb85 361 * @arg USART_FLAG_NE: Noise Error flag
AnnaBridge 126:abea610beb85 362 * @arg USART_FLAG_FE: Framing Error flag
AnnaBridge 126:abea610beb85 363 * @arg USART_FLAG_PE: Parity Error flag
AnnaBridge 126:abea610beb85 364 * @retval The new state of __FLAG__ (TRUE or FALSE).
AnnaBridge 126:abea610beb85 365 */
AnnaBridge 126:abea610beb85 366 #define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
AnnaBridge 126:abea610beb85 367
AnnaBridge 126:abea610beb85 368
AnnaBridge 126:abea610beb85 369 /** @brief Enables the specified USART interrupt.
AnnaBridge 126:abea610beb85 370 * @param __HANDLE__: specifies the USART Handle
AnnaBridge 126:abea610beb85 371 * @param __INTERRUPT__: specifies the USART interrupt source to enable.
AnnaBridge 126:abea610beb85 372 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 373 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
AnnaBridge 126:abea610beb85 374 * @arg USART_IT_TC: Transmission complete interrupt
AnnaBridge 126:abea610beb85 375 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
AnnaBridge 126:abea610beb85 376 * @arg USART_IT_IDLE: Idle line detection interrupt
AnnaBridge 126:abea610beb85 377 * @arg USART_IT_PE: Parity Error interrupt
AnnaBridge 126:abea610beb85 378 * @arg USART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
AnnaBridge 126:abea610beb85 379 * @retval None
AnnaBridge 126:abea610beb85 380 */
AnnaBridge 126:abea610beb85 381 #define __HAL_USART_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 |= (1U << ((__INTERRUPT__) & USART_IT_MASK))): \
AnnaBridge 126:abea610beb85 382 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 |= (1U << ((__INTERRUPT__) & USART_IT_MASK))): \
AnnaBridge 126:abea610beb85 383 ((__HANDLE__)->Instance->CR3 |= (1U << ((__INTERRUPT__) & USART_IT_MASK))))
AnnaBridge 126:abea610beb85 384
AnnaBridge 126:abea610beb85 385 /** @brief Disables the specified USART interrupt.
AnnaBridge 126:abea610beb85 386 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 387 * @param __INTERRUPT__: specifies the USART interrupt source to disable.
AnnaBridge 126:abea610beb85 388 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 389 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
AnnaBridge 126:abea610beb85 390 * @arg USART_IT_TC: Transmission complete interrupt
AnnaBridge 126:abea610beb85 391 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
AnnaBridge 126:abea610beb85 392 * @arg USART_IT_IDLE: Idle line detection interrupt
AnnaBridge 126:abea610beb85 393 * @arg USART_IT_PE: Parity Error interrupt
AnnaBridge 126:abea610beb85 394 * @arg USART_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
AnnaBridge 126:abea610beb85 395 * @retval None
AnnaBridge 126:abea610beb85 396 */
AnnaBridge 126:abea610beb85 397 #define __HAL_USART_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ (1U << ((__INTERRUPT__) & USART_IT_MASK))): \
AnnaBridge 126:abea610beb85 398 ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ (1U << ((__INTERRUPT__) & USART_IT_MASK))): \
AnnaBridge 126:abea610beb85 399 ((__HANDLE__)->Instance->CR3 &= ~ (1U << ((__INTERRUPT__) & USART_IT_MASK))))
AnnaBridge 126:abea610beb85 400
AnnaBridge 126:abea610beb85 401
AnnaBridge 126:abea610beb85 402 /** @brief Checks whether the specified USART interrupt has occurred or not.
AnnaBridge 126:abea610beb85 403 * @param __HANDLE__: specifies the USART Handle
AnnaBridge 126:abea610beb85 404 * @param __IT__: specifies the USART interrupt source to check.
AnnaBridge 126:abea610beb85 405 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 406 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
AnnaBridge 126:abea610beb85 407 * @arg USART_IT_TC: Transmission complete interrupt
AnnaBridge 126:abea610beb85 408 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
AnnaBridge 126:abea610beb85 409 * @arg USART_IT_IDLE: Idle line detection interrupt
AnnaBridge 126:abea610beb85 410 * @arg USART_IT_ORE: OverRun Error interrupt
AnnaBridge 126:abea610beb85 411 * @arg USART_IT_NE: Noise Error interrupt
AnnaBridge 126:abea610beb85 412 * @arg USART_IT_FE: Framing Error interrupt
AnnaBridge 126:abea610beb85 413 * @arg USART_IT_PE: Parity Error interrupt
AnnaBridge 126:abea610beb85 414 * @retval The new state of __IT__ (TRUE or FALSE).
AnnaBridge 126:abea610beb85 415 */
AnnaBridge 126:abea610beb85 416 #define __HAL_USART_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
AnnaBridge 126:abea610beb85 417
AnnaBridge 126:abea610beb85 418 /** @brief Checks whether the specified USART interrupt source is enabled.
AnnaBridge 126:abea610beb85 419 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 420 * @param __IT__: specifies the USART interrupt source to check.
AnnaBridge 126:abea610beb85 421 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 422 * @arg USART_IT_TXE: Transmit Data Register empty interrupt
AnnaBridge 126:abea610beb85 423 * @arg USART_IT_TC: Transmission complete interrupt
AnnaBridge 126:abea610beb85 424 * @arg USART_IT_RXNE: Receive Data register not empty interrupt
AnnaBridge 126:abea610beb85 425 * @arg USART_IT_IDLE: Idle line detection interrupt
AnnaBridge 126:abea610beb85 426 * @arg USART_IT_ORE: OverRun Error interrupt
AnnaBridge 126:abea610beb85 427 * @arg USART_IT_NE: Noise Error interrupt
AnnaBridge 126:abea610beb85 428 * @arg USART_IT_FE: Framing Error interrupt
AnnaBridge 126:abea610beb85 429 * @arg USART_IT_PE: Parity Error interrupt
AnnaBridge 126:abea610beb85 430 * @retval The new state of __IT__ (TRUE or FALSE).
AnnaBridge 126:abea610beb85 431 */
AnnaBridge 126:abea610beb85 432 #define __HAL_USART_GET_IT_SOURCE(__HANDLE__, __IT__) ((((((uint8_t)(__IT__)) >> 5) == 1)? (__HANDLE__)->Instance->CR1:(((((uint8_t)(__IT__)) >> 5) == 2)? \
AnnaBridge 126:abea610beb85 433 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << \
AnnaBridge 126:abea610beb85 434 (((uint16_t)(__IT__)) & USART_IT_MASK)))
AnnaBridge 126:abea610beb85 435
AnnaBridge 126:abea610beb85 436
AnnaBridge 126:abea610beb85 437 /** @brief Clears the specified USART ISR flag, in setting the proper ICR register flag.
AnnaBridge 126:abea610beb85 438 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 439 * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set
AnnaBridge 126:abea610beb85 440 * to clear the corresponding interrupt
AnnaBridge 126:abea610beb85 441 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 442 * @arg USART_CLEAR_PEF: Parity Error Clear Flag
AnnaBridge 126:abea610beb85 443 * @arg USART_CLEAR_FEF: Framing Error Clear Flag
AnnaBridge 126:abea610beb85 444 * @arg USART_CLEAR_NEF: Noise detected Clear Flag
AnnaBridge 126:abea610beb85 445 * @arg USART_CLEAR_OREF: OverRun Error Clear Flag
AnnaBridge 126:abea610beb85 446 * @arg USART_CLEAR_IDLEF: IDLE line detected Clear Flag
AnnaBridge 126:abea610beb85 447 * @arg USART_CLEAR_TCF: Transmission Complete Clear Flag
AnnaBridge 126:abea610beb85 448 * @arg USART_CLEAR_CTSF: CTS Interrupt Clear Flag
AnnaBridge 126:abea610beb85 449 * @retval None
AnnaBridge 126:abea610beb85 450 */
AnnaBridge 126:abea610beb85 451 #define __HAL_USART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
AnnaBridge 126:abea610beb85 452
AnnaBridge 126:abea610beb85 453 /** @brief Set a specific USART request flag.
AnnaBridge 126:abea610beb85 454 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 455 * @param __REQ__: specifies the request flag to set
AnnaBridge 126:abea610beb85 456 * This parameter can be one of the following values:
AnnaBridge 126:abea610beb85 457 * @arg USART_RXDATA_FLUSH_REQUEST: Receive Data flush Request
AnnaBridge 126:abea610beb85 458 * @arg USART_TXDATA_FLUSH_REQUEST: Transmit data flush Request
AnnaBridge 126:abea610beb85 459 *
AnnaBridge 126:abea610beb85 460 * @retval None
AnnaBridge 126:abea610beb85 461 */
AnnaBridge 126:abea610beb85 462 #define __HAL_USART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__))
AnnaBridge 126:abea610beb85 463
AnnaBridge 126:abea610beb85 464 /** @brief Enable USART
AnnaBridge 126:abea610beb85 465 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 466 * @retval None
AnnaBridge 126:abea610beb85 467 */
AnnaBridge 126:abea610beb85 468 #define __HAL_USART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
AnnaBridge 126:abea610beb85 469
AnnaBridge 126:abea610beb85 470 /** @brief Disable USART
AnnaBridge 126:abea610beb85 471 * @param __HANDLE__: specifies the USART Handle.
AnnaBridge 126:abea610beb85 472 * @retval None
AnnaBridge 126:abea610beb85 473 */
AnnaBridge 126:abea610beb85 474 #define __HAL_USART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
AnnaBridge 126:abea610beb85 475
AnnaBridge 126:abea610beb85 476 /**
AnnaBridge 126:abea610beb85 477 * @}
AnnaBridge 126:abea610beb85 478 */
AnnaBridge 126:abea610beb85 479 /* Include UART HAL Extension module */
AnnaBridge 126:abea610beb85 480 #include "stm32f7xx_hal_usart_ex.h"
AnnaBridge 126:abea610beb85 481
AnnaBridge 126:abea610beb85 482 /* Exported functions --------------------------------------------------------*/
AnnaBridge 126:abea610beb85 483 /** @addtogroup USART_Exported_Functions
AnnaBridge 126:abea610beb85 484 * @{
AnnaBridge 126:abea610beb85 485 */
AnnaBridge 126:abea610beb85 486
AnnaBridge 126:abea610beb85 487 /** @addtogroup USART_Exported_Functions_Group1
AnnaBridge 126:abea610beb85 488 * @{
AnnaBridge 126:abea610beb85 489 */
AnnaBridge 126:abea610beb85 490 /* Initialization/de-initialization functions **********************************/
AnnaBridge 126:abea610beb85 491 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 492 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 493 void HAL_USART_MspInit(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 494 void HAL_USART_MspDeInit(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 495 HAL_StatusTypeDef HAL_USART_CheckIdleState(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 496 /**
AnnaBridge 126:abea610beb85 497 * @}
AnnaBridge 126:abea610beb85 498 */
AnnaBridge 126:abea610beb85 499
AnnaBridge 126:abea610beb85 500 /** @addtogroup USART_Exported_Functions_Group2
AnnaBridge 126:abea610beb85 501 * @{
AnnaBridge 126:abea610beb85 502 */
AnnaBridge 126:abea610beb85 503 /* IO operation functions *******************************************************/
AnnaBridge 126:abea610beb85 504 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout);
AnnaBridge 126:abea610beb85 505 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
AnnaBridge 126:abea610beb85 506 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
AnnaBridge 126:abea610beb85 507 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
AnnaBridge 126:abea610beb85 508 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
AnnaBridge 126:abea610beb85 509 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
AnnaBridge 126:abea610beb85 510 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size);
AnnaBridge 126:abea610beb85 511 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size);
AnnaBridge 126:abea610beb85 512 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size);
AnnaBridge 126:abea610beb85 513 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 514 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 515 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 516 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 517 void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 518 void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 519 void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 520 void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 521 void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 522 void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 523
AnnaBridge 126:abea610beb85 524 /**
AnnaBridge 126:abea610beb85 525 * @}
AnnaBridge 126:abea610beb85 526 */
AnnaBridge 126:abea610beb85 527
AnnaBridge 126:abea610beb85 528 /** @addtogroup USART_Exported_Functions_Group3
AnnaBridge 126:abea610beb85 529 * @{
AnnaBridge 126:abea610beb85 530 */
AnnaBridge 126:abea610beb85 531 /* Peripheral State functions ************************************************/
AnnaBridge 126:abea610beb85 532 HAL_USART_StateTypeDef HAL_USART_GetState(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 533 uint32_t HAL_USART_GetError(USART_HandleTypeDef *husart);
AnnaBridge 126:abea610beb85 534
AnnaBridge 126:abea610beb85 535 /**
AnnaBridge 126:abea610beb85 536 * @}
AnnaBridge 126:abea610beb85 537 */
AnnaBridge 126:abea610beb85 538
AnnaBridge 126:abea610beb85 539 /**
AnnaBridge 126:abea610beb85 540 * @}
AnnaBridge 126:abea610beb85 541 */
AnnaBridge 126:abea610beb85 542 /* Private types -------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 543 /* Private variables ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 544 /* Private constants ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 545 /** @defgroup USART_Private_Constants USART Private Constants
AnnaBridge 126:abea610beb85 546 * @{
AnnaBridge 126:abea610beb85 547 */
AnnaBridge 126:abea610beb85 548 /** @brief USART interruptions flag mask
AnnaBridge 126:abea610beb85 549 *
AnnaBridge 126:abea610beb85 550 */
AnnaBridge 126:abea610beb85 551 #define USART_IT_MASK ((uint16_t)0x001FU)
AnnaBridge 126:abea610beb85 552
AnnaBridge 126:abea610beb85 553 /**
AnnaBridge 126:abea610beb85 554 * @}
AnnaBridge 126:abea610beb85 555 */
AnnaBridge 126:abea610beb85 556 /* Private macros ------------------------------------------------------------*/
AnnaBridge 126:abea610beb85 557 /** @defgroup USART_Private_Macros USART Private Macros
AnnaBridge 126:abea610beb85 558 * @{
AnnaBridge 126:abea610beb85 559 */
AnnaBridge 126:abea610beb85 560 /** @brief Reports the USART clock source.
AnnaBridge 126:abea610beb85 561 * @param __HANDLE__: specifies the USART Handle
AnnaBridge 126:abea610beb85 562 * @param __CLOCKSOURCE__ : output variable
AnnaBridge 126:abea610beb85 563 * @retval the USART clocking source, written in __CLOCKSOURCE__.
AnnaBridge 126:abea610beb85 564 */
AnnaBridge 126:abea610beb85 565 #define USART_GETCLOCKSOURCE(__HANDLE__, __CLOCKSOURCE__)\
AnnaBridge 126:abea610beb85 566 do { \
AnnaBridge 126:abea610beb85 567 if((__HANDLE__)->Instance == USART1) \
AnnaBridge 126:abea610beb85 568 { \
AnnaBridge 126:abea610beb85 569 switch(__HAL_RCC_GET_USART1_SOURCE()) \
AnnaBridge 126:abea610beb85 570 { \
AnnaBridge 126:abea610beb85 571 case RCC_USART1CLKSOURCE_PCLK2: \
AnnaBridge 126:abea610beb85 572 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK2; \
AnnaBridge 126:abea610beb85 573 break; \
AnnaBridge 126:abea610beb85 574 case RCC_USART1CLKSOURCE_HSI: \
AnnaBridge 126:abea610beb85 575 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
AnnaBridge 126:abea610beb85 576 break; \
AnnaBridge 126:abea610beb85 577 case RCC_USART1CLKSOURCE_SYSCLK: \
AnnaBridge 126:abea610beb85 578 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 126:abea610beb85 579 break; \
AnnaBridge 126:abea610beb85 580 case RCC_USART1CLKSOURCE_LSE: \
AnnaBridge 126:abea610beb85 581 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
AnnaBridge 126:abea610beb85 582 break; \
AnnaBridge 126:abea610beb85 583 default: \
AnnaBridge 126:abea610beb85 584 break; \
AnnaBridge 126:abea610beb85 585 } \
AnnaBridge 126:abea610beb85 586 } \
AnnaBridge 126:abea610beb85 587 else if((__HANDLE__)->Instance == USART2) \
AnnaBridge 126:abea610beb85 588 { \
AnnaBridge 126:abea610beb85 589 switch(__HAL_RCC_GET_USART2_SOURCE()) \
AnnaBridge 126:abea610beb85 590 { \
AnnaBridge 126:abea610beb85 591 case RCC_USART2CLKSOURCE_PCLK1: \
AnnaBridge 126:abea610beb85 592 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
AnnaBridge 126:abea610beb85 593 break; \
AnnaBridge 126:abea610beb85 594 case RCC_USART2CLKSOURCE_HSI: \
AnnaBridge 126:abea610beb85 595 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
AnnaBridge 126:abea610beb85 596 break; \
AnnaBridge 126:abea610beb85 597 case RCC_USART2CLKSOURCE_SYSCLK: \
AnnaBridge 126:abea610beb85 598 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 126:abea610beb85 599 break; \
AnnaBridge 126:abea610beb85 600 case RCC_USART2CLKSOURCE_LSE: \
AnnaBridge 126:abea610beb85 601 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
AnnaBridge 126:abea610beb85 602 break; \
AnnaBridge 126:abea610beb85 603 default: \
AnnaBridge 126:abea610beb85 604 break; \
AnnaBridge 126:abea610beb85 605 } \
AnnaBridge 126:abea610beb85 606 } \
AnnaBridge 126:abea610beb85 607 else if((__HANDLE__)->Instance == USART3) \
AnnaBridge 126:abea610beb85 608 { \
AnnaBridge 126:abea610beb85 609 switch(__HAL_RCC_GET_USART3_SOURCE()) \
AnnaBridge 126:abea610beb85 610 { \
AnnaBridge 126:abea610beb85 611 case RCC_USART3CLKSOURCE_PCLK1: \
AnnaBridge 126:abea610beb85 612 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK1; \
AnnaBridge 126:abea610beb85 613 break; \
AnnaBridge 126:abea610beb85 614 case RCC_USART3CLKSOURCE_HSI: \
AnnaBridge 126:abea610beb85 615 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
AnnaBridge 126:abea610beb85 616 break; \
AnnaBridge 126:abea610beb85 617 case RCC_USART3CLKSOURCE_SYSCLK: \
AnnaBridge 126:abea610beb85 618 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 126:abea610beb85 619 break; \
AnnaBridge 126:abea610beb85 620 case RCC_USART3CLKSOURCE_LSE: \
AnnaBridge 126:abea610beb85 621 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
AnnaBridge 126:abea610beb85 622 break; \
AnnaBridge 126:abea610beb85 623 default: \
AnnaBridge 126:abea610beb85 624 break; \
AnnaBridge 126:abea610beb85 625 } \
AnnaBridge 126:abea610beb85 626 } \
AnnaBridge 126:abea610beb85 627 else if((__HANDLE__)->Instance == USART6) \
AnnaBridge 126:abea610beb85 628 { \
AnnaBridge 126:abea610beb85 629 switch(__HAL_RCC_GET_USART6_SOURCE()) \
AnnaBridge 126:abea610beb85 630 { \
AnnaBridge 126:abea610beb85 631 case RCC_USART6CLKSOURCE_PCLK2: \
AnnaBridge 126:abea610beb85 632 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_PCLK2; \
AnnaBridge 126:abea610beb85 633 break; \
AnnaBridge 126:abea610beb85 634 case RCC_USART6CLKSOURCE_HSI: \
AnnaBridge 126:abea610beb85 635 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_HSI; \
AnnaBridge 126:abea610beb85 636 break; \
AnnaBridge 126:abea610beb85 637 case RCC_USART6CLKSOURCE_SYSCLK: \
AnnaBridge 126:abea610beb85 638 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_SYSCLK; \
AnnaBridge 126:abea610beb85 639 break; \
AnnaBridge 126:abea610beb85 640 case RCC_USART6CLKSOURCE_LSE: \
AnnaBridge 126:abea610beb85 641 (__CLOCKSOURCE__) = USART_CLOCKSOURCE_LSE; \
AnnaBridge 126:abea610beb85 642 break; \
AnnaBridge 126:abea610beb85 643 default: \
AnnaBridge 126:abea610beb85 644 break; \
AnnaBridge 126:abea610beb85 645 } \
AnnaBridge 126:abea610beb85 646 } \
AnnaBridge 126:abea610beb85 647 } while(0)
AnnaBridge 126:abea610beb85 648
AnnaBridge 126:abea610beb85 649
AnnaBridge 126:abea610beb85 650 #define IS_USART_STOPBITS(__STOPBITS__) (((__STOPBITS__) == USART_STOPBITS_1) || \
AnnaBridge 126:abea610beb85 651 ((__STOPBITS__) == USART_STOPBITS_1_5) || \
AnnaBridge 126:abea610beb85 652 ((__STOPBITS__) == USART_STOPBITS_2))
AnnaBridge 126:abea610beb85 653 #define IS_USART_PARITY(__PARITY__) (((__PARITY__) == USART_PARITY_NONE) || \
AnnaBridge 126:abea610beb85 654 ((__PARITY__) == USART_PARITY_EVEN) || \
AnnaBridge 126:abea610beb85 655 ((__PARITY__) == USART_PARITY_ODD))
AnnaBridge 126:abea610beb85 656 #define IS_USART_MODE(__MODE__) ((((__MODE__) & (uint32_t)0xFFFFFFF3U) == 0x00U) && ((__MODE__) != (uint32_t)0x00U))
AnnaBridge 126:abea610beb85 657 #define IS_USART_OVERSAMPLING(__SAMPLING__) (((__SAMPLING__) == USART_OVERSAMPLING_16) || \
AnnaBridge 126:abea610beb85 658 ((__SAMPLING__) == USART_OVERSAMPLING_8))
AnnaBridge 126:abea610beb85 659 #define IS_USART_CLOCK(__CLOCK__) (((__CLOCK__)== USART_CLOCK_DISABLE) || \
AnnaBridge 126:abea610beb85 660 ((__CLOCK__)== USART_CLOCK_ENABLE))
AnnaBridge 126:abea610beb85 661 #define IS_USART_POLARITY(__CPOL__) (((__CPOL__) == USART_POLARITY_LOW) || ((__CPOL__) == USART_POLARITY_HIGH))
AnnaBridge 126:abea610beb85 662 #define IS_USART_PHASE(__CPHA__) (((__CPHA__) == USART_PHASE_1EDGE) || ((__CPHA__) == USART_PHASE_2EDGE))
AnnaBridge 126:abea610beb85 663 #define IS_USART_LASTBIT(__LASTBIT__) (((__LASTBIT__) == USART_LASTBIT_DISABLE) || \
AnnaBridge 126:abea610beb85 664 ((__LASTBIT__) == USART_LASTBIT_ENABLE))
AnnaBridge 126:abea610beb85 665 #define IS_USART_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == USART_RXDATA_FLUSH_REQUEST) || \
AnnaBridge 126:abea610beb85 666 ((__PARAM__) == USART_TXDATA_FLUSH_REQUEST))
AnnaBridge 126:abea610beb85 667 #define IS_USART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 9000001)
AnnaBridge 126:abea610beb85 668
AnnaBridge 126:abea610beb85 669 /**
AnnaBridge 126:abea610beb85 670 * @}
AnnaBridge 126:abea610beb85 671 */
AnnaBridge 126:abea610beb85 672
AnnaBridge 126:abea610beb85 673 /* Private functions ---------------------------------------------------------*/
AnnaBridge 126:abea610beb85 674 /** @defgroup USART_Private_Functions USART Private Functions
AnnaBridge 126:abea610beb85 675 * @{
AnnaBridge 126:abea610beb85 676 */
AnnaBridge 126:abea610beb85 677
AnnaBridge 126:abea610beb85 678 /**
AnnaBridge 126:abea610beb85 679 * @}
AnnaBridge 126:abea610beb85 680 */
AnnaBridge 126:abea610beb85 681
AnnaBridge 126:abea610beb85 682 /**
AnnaBridge 126:abea610beb85 683 * @}
AnnaBridge 126:abea610beb85 684 */
AnnaBridge 126:abea610beb85 685
AnnaBridge 126:abea610beb85 686 /**
AnnaBridge 126:abea610beb85 687 * @}
AnnaBridge 126:abea610beb85 688 */
AnnaBridge 126:abea610beb85 689
AnnaBridge 126:abea610beb85 690 #ifdef __cplusplus
AnnaBridge 126:abea610beb85 691 }
AnnaBridge 126:abea610beb85 692 #endif
AnnaBridge 126:abea610beb85 693
AnnaBridge 126:abea610beb85 694 #endif /* __STM32F7xx_HAL_USART_H */
AnnaBridge 126:abea610beb85 695
AnnaBridge 126:abea610beb85 696 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/