1 /** 2 ****************************************************************************** 3 * @file stm32f37x_usart.h 4 * @author MCD Application Team 5 * @version V1.0.0 6 * @date 20-September-2012 7 * @brief This file contains all the functions prototypes for the USART 8 * firmware library. 9 ****************************************************************************** 10 * @attention 11 * 12 * <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2> 13 * 14 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); 15 * You may not use this file except in compliance with the License. 16 * You may obtain a copy of the License at: 17 * 18 * http://www.st.com/software_license_agreement_liberty_v2 19 * 20 * Unless required by applicable law or agreed to in writing, software 21 * distributed under the License is distributed on an "AS IS" BASIS, 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 * See the License for the specific language governing permissions and 24 * limitations under the License. 25 * 26 ****************************************************************************** 27 */ 28 29 /* Define to prevent recursive inclusion -------------------------------------*/ 30 #ifndef __STM32F37X_USART_H 31 #define __STM32F37X_USART_H 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 /* Includes ------------------------------------------------------------------*/ 38 #include "stm32f37x.h" 39 40 /** @addtogroup STM32F37x_StdPeriph_Driver 41 * @{ 42 */ 43 44 /** @addtogroup USART 45 * @{ 46 */ 47 48 /* Exported types ------------------------------------------------------------*/ 49 50 51 52 /** 53 * @brief USART Init Structure definition 54 */ 55 56 typedef struct 57 { 58 uint32_t USART_BaudRate; /*!< This member configures the USART communication baud rate. 59 The baud rate is computed using the following formula: 60 - IntegerDivider = ((PCLKx) / (16 * (USART_InitStruct->USART_BaudRate))) 61 - FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 16) + 0.5 */ 62 63 uint32_t USART_WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. 64 This parameter can be a value of @ref USART_Word_Length */ 65 66 uint32_t USART_StopBits; /*!< Specifies the number of stop bits transmitted. 67 This parameter can be a value of @ref USART_Stop_Bits */ 68 69 uint32_t USART_Parity; /*!< Specifies the parity mode. 70 This parameter can be a value of @ref USART_Parity 71 @note When parity is enabled, the computed parity is inserted 72 at the MSB position of the transmitted data (9th bit when 73 the word length is set to 9 data bits; 8th bit when the 74 word length is set to 8 data bits). */ 75 76 uint32_t USART_Mode; /*!< Specifies wether the Receive or Transmit mode is enabled or disabled. 77 This parameter can be a value of @ref USART_Mode */ 78 79 uint32_t USART_HardwareFlowControl; /*!< Specifies wether the hardware flow control mode is enabled 80 or disabled. 81 This parameter can be a value of @ref USART_Hardware_Flow_Control*/ 82 } USART_InitTypeDef; 83 84 /** 85 * @brief USART Clock Init Structure definition 86 */ 87 88 typedef struct 89 { 90 uint32_t USART_Clock; /*!< Specifies whether the USART clock is enabled or disabled. 91 This parameter can be a value of @ref USART_Clock */ 92 93 uint32_t USART_CPOL; /*!< Specifies the steady state of the serial clock. 94 This parameter can be a value of @ref USART_Clock_Polarity */ 95 96 uint32_t USART_CPHA; /*!< Specifies the clock transition on which the bit capture is made. 97 This parameter can be a value of @ref USART_Clock_Phase */ 98 99 uint32_t USART_LastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted 100 data bit (MSB) has to be output on the SCLK pin in synchronous mode. 101 This parameter can be a value of @ref USART_Last_Bit */ 102 } USART_ClockInitTypeDef; 103 104 /* Exported constants --------------------------------------------------------*/ 105 106 /** @defgroup USART_Exported_Constants 107 * @{ 108 */ 109 110 #define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \ 111 ((PERIPH) == USART2) || \ 112 ((PERIPH) == USART3)) 113 114 115 /** @defgroup USART_Word_Length 116 * @{ 117 */ 118 119 #define USART_WordLength_8b ((uint32_t)0x00000000) 120 #define USART_WordLength_9b USART_CR1_M 121 #define IS_USART_WORD_LENGTH(LENGTH) (((LENGTH) == USART_WordLength_8b) || \ 122 ((LENGTH) == USART_WordLength_9b)) 123 /** 124 * @} 125 */ 126 127 /** @defgroup USART_Stop_Bits 128 * @{ 129 */ 130 131 #define USART_StopBits_1 ((uint32_t)0x00000000) 132 #define USART_StopBits_2 USART_CR2_STOP_1 133 #define USART_StopBits_1_5 (USART_CR2_STOP_0 | USART_CR2_STOP_1) 134 #define IS_USART_STOPBITS(STOPBITS) (((STOPBITS) == USART_StopBits_1) || \ 135 ((STOPBITS) == USART_StopBits_2) || \ 136 ((STOPBITS) == USART_StopBits_1_5)) 137 /** 138 * @} 139 */ 140 141 /** @defgroup USART_Parity 142 * @{ 143 */ 144 145 #define USART_Parity_No ((uint32_t)0x00000000) 146 #define USART_Parity_Even USART_CR1_PCE 147 #define USART_Parity_Odd (USART_CR1_PCE | USART_CR1_PS) 148 #define IS_USART_PARITY(PARITY) (((PARITY) == USART_Parity_No) || \ 149 ((PARITY) == USART_Parity_Even) || \ 150 ((PARITY) == USART_Parity_Odd)) 151 /** 152 * @} 153 */ 154 155 /** @defgroup USART_Mode 156 * @{ 157 */ 158 159 #define USART_Mode_Rx USART_CR1_RE 160 #define USART_Mode_Tx USART_CR1_TE 161 #define IS_USART_MODE(MODE) ((((MODE) & (uint32_t)0xFFFFFFF3) == 0x00) && \ 162 ((MODE) != (uint32_t)0x00)) 163 /** 164 * @} 165 */ 166 167 /** @defgroup USART_Hardware_Flow_Control 168 * @{ 169 */ 170 171 #define USART_HardwareFlowControl_None ((uint32_t)0x00000000) 172 #define USART_HardwareFlowControl_RTS USART_CR3_RTSE 173 #define USART_HardwareFlowControl_CTS USART_CR3_CTSE 174 #define USART_HardwareFlowControl_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) 175 #define IS_USART_HARDWARE_FLOW_CONTROL(CONTROL)\ 176 (((CONTROL) == USART_HardwareFlowControl_None) || \ 177 ((CONTROL) == USART_HardwareFlowControl_RTS) || \ 178 ((CONTROL) == USART_HardwareFlowControl_CTS) || \ 179 ((CONTROL) == USART_HardwareFlowControl_RTS_CTS)) 180 /** 181 * @} 182 */ 183 184 /** @defgroup USART_Clock 185 * @{ 186 */ 187 188 #define USART_Clock_Disable ((uint32_t)0x00000000) 189 #define USART_Clock_Enable USART_CR2_CLKEN 190 #define IS_USART_CLOCK(CLOCK) (((CLOCK) == USART_Clock_Disable) || \ 191 ((CLOCK) == USART_Clock_Enable)) 192 /** 193 * @} 194 */ 195 196 /** @defgroup USART_Clock_Polarity 197 * @{ 198 */ 199 200 #define USART_CPOL_Low ((uint32_t)0x00000000) 201 #define USART_CPOL_High USART_CR2_CPOL 202 #define IS_USART_CPOL(CPOL) (((CPOL) == USART_CPOL_Low) || ((CPOL) == USART_CPOL_High)) 203 204 /** 205 * @} 206 */ 207 208 /** @defgroup USART_Clock_Phase 209 * @{ 210 */ 211 212 #define USART_CPHA_1Edge ((uint32_t)0x00000000) 213 #define USART_CPHA_2Edge USART_CR2_CPHA 214 #define IS_USART_CPHA(CPHA) (((CPHA) == USART_CPHA_1Edge) || ((CPHA) == USART_CPHA_2Edge)) 215 216 /** 217 * @} 218 */ 219 220 /** @defgroup USART_Last_Bit 221 * @{ 222 */ 223 224 #define USART_LastBit_Disable ((uint32_t)0x00000000) 225 #define USART_LastBit_Enable USART_CR2_LBCL 226 #define IS_USART_LASTBIT(LASTBIT) (((LASTBIT) == USART_LastBit_Disable) || \ 227 ((LASTBIT) == USART_LastBit_Enable)) 228 /** 229 * @} 230 */ 231 232 /** @defgroup USART_DMA_Requests 233 * @{ 234 */ 235 236 #define USART_DMAReq_Tx USART_CR3_DMAT 237 #define USART_DMAReq_Rx USART_CR3_DMAR 238 #define IS_USART_DMAREQ(DMAREQ) ((((DMAREQ) & (uint32_t)0xFFFFFF3F) == 0x00) && \ 239 ((DMAREQ) != (uint32_t)0x00)) 240 241 /** 242 * @} 243 */ 244 245 /** @defgroup USART_DMA_Recception_Error 246 * @{ 247 */ 248 249 #define USART_DMAOnError_Enable ((uint32_t)0x00000000) 250 #define USART_DMAOnError_Disable USART_CR3_DDRE 251 #define IS_USART_DMAONERROR(DMAERROR) (((DMAERROR) == USART_DMAOnError_Disable)|| \ 252 ((DMAERROR) == USART_DMAOnError_Enable)) 253 /** 254 * @} 255 */ 256 257 /** @defgroup USART_MuteMode_WakeUp_methods 258 * @{ 259 */ 260 261 #define USART_WakeUp_IdleLine ((uint32_t)0x00000000) 262 #define USART_WakeUp_AddressMark USART_CR1_WAKE 263 #define IS_USART_MUTEMODE_WAKEUP(WAKEUP) (((WAKEUP) == USART_WakeUp_IdleLine) || \ 264 ((WAKEUP) == USART_WakeUp_AddressMark)) 265 /** 266 * @} 267 */ 268 269 /** @defgroup USART_Address_Detection 270 * @{ 271 */ 272 273 #define USART_AddressLength_4b ((uint32_t)0x00000000) 274 #define USART_AddressLength_7b USART_CR2_ADDM7 275 #define IS_USART_ADDRESS_DETECTION(ADDRESS) (((ADDRESS) == USART_AddressLength_4b) || \ 276 ((ADDRESS) == USART_AddressLength_7b)) 277 /** 278 * @} 279 */ 280 281 /** @defgroup USART_StopMode_WakeUp_methods 282 * @{ 283 */ 284 285 #define USART_WakeUpSource_AddressMatch ((uint32_t)0x00000000) 286 #define USART_WakeUpSource_StartBit USART_CR3_WUS_1 287 #define USART_WakeUpSource_RXNE (USART_CR3_WUS_0 | USART_CR3_WUS_1) 288 #define IS_USART_STOPMODE_WAKEUPSOURCE(SOURCE) (((SOURCE) == USART_WakeUpSource_AddressMatch) || \ 289 ((SOURCE) == USART_WakeUpSource_StartBit) || \ 290 ((SOURCE) == USART_WakeUpSource_RXNE)) 291 /** 292 * @} 293 */ 294 295 /** @defgroup USART_LIN_Break_Detection_Length 296 * @{ 297 */ 298 299 #define USART_LINBreakDetectLength_10b ((uint32_t)0x00000000) 300 #define USART_LINBreakDetectLength_11b USART_CR2_LBDL 301 #define IS_USART_LIN_BREAK_DETECT_LENGTH(LENGTH) \ 302 (((LENGTH) == USART_LINBreakDetectLength_10b) || \ 303 ((LENGTH) == USART_LINBreakDetectLength_11b)) 304 /** 305 * @} 306 */ 307 308 /** @defgroup USART_IrDA_Low_Power 309 * @{ 310 */ 311 312 #define USART_IrDAMode_LowPower USART_CR3_IRLP 313 #define USART_IrDAMode_Normal ((uint32_t)0x00000000) 314 #define IS_USART_IRDA_MODE(MODE) (((MODE) == USART_IrDAMode_LowPower) || \ 315 ((MODE) == USART_IrDAMode_Normal)) 316 /** 317 * @} 318 */ 319 320 /** @defgroup USART_DE_Polarity 321 * @{ 322 */ 323 324 #define USART_DEPolarity_High ((uint32_t)0x00000000) 325 #define USART_DEPolarity_Low USART_CR3_DEP 326 #define IS_USART_DE_POLARITY(POLARITY) (((POLARITY) == USART_DEPolarity_Low) || \ 327 ((POLARITY) == USART_DEPolarity_High)) 328 /** 329 * @} 330 */ 331 332 /** @defgroup USART_Inversion_Pins 333 * @{ 334 */ 335 336 #define USART_InvPin_Tx USART_CR2_TXINV 337 #define USART_InvPin_Rx USART_CR2_RXINV 338 #define IS_USART_INVERSTION_PIN(PIN) ((((PIN) & (uint32_t)0xFFFCFFFF) == 0x00) && \ 339 ((PIN) != (uint32_t)0x00)) 340 341 /** 342 * @} 343 */ 344 345 /** @defgroup USART_AutoBaudRate_Mode 346 * @{ 347 */ 348 349 #define USART_AutoBaudRate_StartBit ((uint32_t)0x00000000) 350 #define USART_AutoBaudRate_FallingEdge USART_CR2_ABRMODE_0 351 #define IS_USART_AUTOBAUDRATE_MODE(MODE) (((MODE) == USART_AutoBaudRate_StartBit) || \ 352 ((MODE) == USART_AutoBaudRate_FallingEdge)) 353 /** 354 * @} 355 */ 356 357 /** @defgroup USART_OVR_DETECTION 358 * @{ 359 */ 360 361 #define USART_OVRDetection_Enable ((uint32_t)0x00000000) 362 #define USART_OVRDetection_Disable USART_CR3_OVRDIS 363 #define IS_USART_OVRDETECTION(OVR) (((OVR) == USART_OVRDetection_Enable)|| \ 364 ((OVR) == USART_OVRDetection_Disable)) 365 /** 366 * @} 367 */ 368 /** @defgroup USART_Request 369 * @{ 370 */ 371 372 #define USART_Request_ABRRQ USART_RQR_ABRRQ 373 #define USART_Request_SBKRQ USART_RQR_SBKRQ 374 #define USART_Request_MMRQ USART_RQR_MMRQ 375 #define USART_Request_RXFRQ USART_RQR_RXFRQ 376 #define USART_Request_TXFRQ USART_RQR_TXFRQ 377 378 #define IS_USART_REQUEST(REQUEST) (((REQUEST) == USART_Request_TXFRQ) || \ 379 ((REQUEST) == USART_Request_RXFRQ) || \ 380 ((REQUEST) == USART_Request_MMRQ) || \ 381 ((REQUEST) == USART_Request_SBKRQ) || \ 382 ((REQUEST) == USART_Request_ABRRQ)) 383 /** 384 * @} 385 */ 386 387 /** @defgroup USART_Flags 388 * @{ 389 */ 390 #define USART_FLAG_REACK USART_ISR_REACK 391 #define USART_FLAG_TEACK USART_ISR_TEACK 392 #define USART_FLAG_WU USART_ISR_WUF 393 #define USART_FLAG_RWU USART_ISR_RWU 394 #define USART_FLAG_SBK USART_ISR_SBKF 395 #define USART_FLAG_CM USART_ISR_CMF 396 #define USART_FLAG_BUSY USART_ISR_BUSY 397 #define USART_FLAG_ABRF USART_ISR_ABRF 398 #define USART_FLAG_ABRE USART_ISR_ABRE 399 #define USART_FLAG_EOB USART_ISR_EOBF 400 #define USART_FLAG_RTO USART_ISR_RTOF 401 #define USART_FLAG_nCTSS USART_ISR_CTS 402 #define USART_FLAG_CTS USART_ISR_CTSIF 403 #define USART_FLAG_LBD USART_ISR_LBD 404 #define USART_FLAG_TXE USART_ISR_TXE 405 #define USART_FLAG_TC USART_ISR_TC 406 #define USART_FLAG_RXNE USART_ISR_RXNE 407 #define USART_FLAG_IDLE USART_ISR_IDLE 408 #define USART_FLAG_ORE USART_ISR_ORE 409 #define USART_FLAG_NE USART_ISR_NE 410 #define USART_FLAG_FE USART_ISR_FE 411 #define USART_FLAG_PE USART_ISR_PE 412 #define IS_USART_FLAG(FLAG) (((FLAG) == USART_FLAG_PE) || ((FLAG) == USART_FLAG_TXE) || \ 413 ((FLAG) == USART_FLAG_TC) || ((FLAG) == USART_FLAG_RXNE) || \ 414 ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_LBD) || \ 415 ((FLAG) == USART_FLAG_CTS) || ((FLAG) == USART_FLAG_ORE) || \ 416 ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE) || \ 417 ((FLAG) == USART_FLAG_nCTSS) || ((FLAG) == USART_FLAG_RTO) || \ 418 ((FLAG) == USART_FLAG_EOB) || ((FLAG) == USART_FLAG_ABRE) || \ 419 ((FLAG) == USART_FLAG_ABRF) || ((FLAG) == USART_FLAG_BUSY) || \ 420 ((FLAG) == USART_FLAG_CM) || ((FLAG) == USART_FLAG_SBK) || \ 421 ((FLAG) == USART_FLAG_RWU) || ((FLAG) == USART_FLAG_WU) || \ 422 ((FLAG) == USART_FLAG_TEACK)|| ((FLAG) == USART_FLAG_REACK)) 423 424 #define IS_USART_CLEAR_FLAG(FLAG) (((FLAG) == USART_FLAG_WU) || ((FLAG) == USART_FLAG_TC) || \ 425 ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_ORE) || \ 426 ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE) || \ 427 ((FLAG) == USART_FLAG_LBD) || ((FLAG) == USART_FLAG_CTS) || \ 428 ((FLAG) == USART_FLAG_RTO) || ((FLAG) == USART_FLAG_EOB) || \ 429 ((FLAG) == USART_FLAG_CM) || ((FLAG) == USART_FLAG_PE)) 430 /** 431 * @} 432 */ 433 434 /** @defgroup USART_Interrupt_definition 435 * @brief USART Interrupt definition 436 * USART_IT possible values 437 * Elements values convention: 0xZZZZYYXX 438 * XX: Position of the corresponding Interrupt 439 * YY: Register index 440 * ZZZZ: Flag position 441 * @{ 442 */ 443 444 #define USART_IT_WU ((uint32_t)0x00140316) 445 #define USART_IT_CM ((uint32_t)0x0011010E) 446 #define USART_IT_EOB ((uint32_t)0x000C011B) 447 #define USART_IT_RTO ((uint32_t)0x000B011A) 448 #define USART_IT_PE ((uint32_t)0x00000108) 449 #define USART_IT_TXE ((uint32_t)0x00070107) 450 #define USART_IT_TC ((uint32_t)0x00060106) 451 #define USART_IT_RXNE ((uint32_t)0x00050105) 452 #define USART_IT_IDLE ((uint32_t)0x00040104) 453 #define USART_IT_LBD ((uint32_t)0x00080206) 454 #define USART_IT_CTS ((uint32_t)0x0009030A) 455 #define USART_IT_ERR ((uint32_t)0x00000300) 456 #define USART_IT_ORE ((uint32_t)0x00030300) 457 #define USART_IT_NE ((uint32_t)0x00020300) 458 #define USART_IT_FE ((uint32_t)0x00010300) 459 460 #define IS_USART_CONFIG_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \ 461 ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \ 462 ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \ 463 ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ERR) || \ 464 ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \ 465 ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU)) 466 467 #define IS_USART_GET_IT(IT) (((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) || \ 468 ((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) || \ 469 ((IT) == USART_IT_IDLE) || ((IT) == USART_IT_LBD) || \ 470 ((IT) == USART_IT_CTS) || ((IT) == USART_IT_ORE) || \ 471 ((IT) == USART_IT_NE) || ((IT) == USART_IT_FE) || \ 472 ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \ 473 ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU)) 474 475 #define IS_USART_CLEAR_IT(IT) (((IT) == USART_IT_TC) || ((IT) == USART_IT_PE) || \ 476 ((IT) == USART_IT_FE) || ((IT) == USART_IT_NE) || \ 477 ((IT) == USART_IT_ORE) || ((IT) == USART_IT_IDLE) || \ 478 ((IT) == USART_IT_LBD) || ((IT) == USART_IT_CTS) || \ 479 ((IT) == USART_IT_RTO) || ((IT) == USART_IT_EOB) || \ 480 ((IT) == USART_IT_CM) || ((IT) == USART_IT_WU)) 481 /** 482 * @} 483 */ 484 485 /** @defgroup USART_Global_definition 486 * @{ 487 */ 488 489 #define IS_USART_BAUDRATE(BAUDRATE) (((BAUDRATE) > 0) && ((BAUDRATE) < 0x005B8D81)) 490 #define IS_USART_DE_ASSERTION_DEASSERTION_TIME(TIME) ((TIME) <= 0x1F) 491 #define IS_USART_AUTO_RETRY_COUNTER(COUNTER) ((COUNTER) <= 0x7) 492 #define IS_USART_TIMEOUT(TIMEOUT) ((TIMEOUT) <= 0x00FFFFFF) 493 #define IS_USART_DATA(DATA) ((DATA) <= 0x1FF) 494 495 /** 496 * @} 497 */ 498 499 /** 500 * @} 501 */ 502 503 /* Exported macro ------------------------------------------------------------*/ 504 /* Exported functions ------------------------------------------------------- */ 505 506 /* Initialization and Configuration functions *********************************/ 507 void USART_DeInit(USART_TypeDef* USARTx); 508 void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct); 509 void USART_StructInit(USART_InitTypeDef* USART_InitStruct); 510 void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct); 511 void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct); 512 void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState); 513 void USART_DirectionModeCmd(USART_TypeDef* USARTx, uint32_t USART_DirectionMode, FunctionalState NewState); 514 void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler); 515 void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState); 516 void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState); 517 void USART_MSBFirstCmd(USART_TypeDef* USARTx, FunctionalState NewState); 518 void USART_DataInvCmd(USART_TypeDef* USARTx, FunctionalState NewState); 519 void USART_InvPinCmd(USART_TypeDef* USARTx, uint32_t USART_InvPin, FunctionalState NewState); 520 void USART_SWAPPinCmd(USART_TypeDef* USARTx, FunctionalState NewState); 521 void USART_ReceiverTimeOutCmd(USART_TypeDef* USARTx, FunctionalState NewState); 522 void USART_SetReceiverTimeOut(USART_TypeDef* USARTx, uint32_t USART_ReceiverTimeOut); 523 524 /* STOP Mode functions ********************************************************/ 525 void USART_STOPModeCmd(USART_TypeDef* USARTx, FunctionalState NewState); 526 void USART_StopModeWakeUpSourceConfig(USART_TypeDef* USARTx, uint32_t USART_WakeUpSource); 527 528 /* AutoBaudRate functions *****************************************************/ 529 void USART_AutoBaudRateCmd(USART_TypeDef* USARTx, FunctionalState NewState); 530 void USART_AutoBaudRateConfig(USART_TypeDef* USARTx, uint32_t USART_AutoBaudRate); 531 532 /* Data transfers functions ***************************************************/ 533 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); 534 uint16_t USART_ReceiveData(USART_TypeDef* USARTx); 535 536 /* Multi-Processor Communication functions ************************************/ 537 void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address); 538 void USART_MuteModeWakeUpConfig(USART_TypeDef* USARTx, uint32_t USART_WakeUp); 539 void USART_MuteModeCmd(USART_TypeDef* USARTx, FunctionalState NewState); 540 void USART_AddressDetectionConfig(USART_TypeDef* USARTx, uint32_t USART_AddressLength); 541 /* LIN mode functions *********************************************************/ 542 void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint32_t USART_LINBreakDetectLength); 543 void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState); 544 545 /* Half-duplex mode function **************************************************/ 546 void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState); 547 548 /* Smartcard mode functions ***************************************************/ 549 void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState); 550 void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState); 551 void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime); 552 void USART_SetAutoRetryCount(USART_TypeDef* USARTx, uint8_t USART_AutoCount); 553 void USART_SetBlockLength(USART_TypeDef* USARTx, uint8_t USART_BlockLength); 554 555 /* IrDA mode functions ********************************************************/ 556 void USART_IrDAConfig(USART_TypeDef* USARTx, uint32_t USART_IrDAMode); 557 void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState); 558 559 /* RS485 mode functions *******************************************************/ 560 void USART_DECmd(USART_TypeDef* USARTx, FunctionalState NewState); 561 void USART_DEPolarityConfig(USART_TypeDef* USARTx, uint32_t USART_DEPolarity); 562 void USART_SetDEAssertionTime(USART_TypeDef* USARTx, uint32_t USART_DEAssertionTime); 563 void USART_SetDEDeassertionTime(USART_TypeDef* USARTx, uint32_t USART_DEDeassertionTime); 564 565 /* DMA transfers management functions *****************************************/ 566 void USART_DMACmd(USART_TypeDef* USARTx, uint32_t USART_DMAReq, FunctionalState NewState); 567 void USART_DMAReceptionErrorConfig(USART_TypeDef* USARTx, uint32_t USART_DMAOnError); 568 569 /* Interrupts and flags management functions **********************************/ 570 void USART_ITConfig(USART_TypeDef* USARTx, uint32_t USART_IT, FunctionalState NewState); 571 void USART_RequestCmd(USART_TypeDef* USARTx, uint32_t USART_Request, FunctionalState NewState); 572 void USART_OverrunDetectionConfig(USART_TypeDef* USARTx, uint32_t USART_OVRDetection); 573 FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint32_t USART_FLAG); 574 void USART_ClearFlag(USART_TypeDef* USARTx, uint32_t USART_FLAG); 575 ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint32_t USART_IT); 576 void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint32_t USART_IT); 577 578 #ifdef __cplusplus 579 } 580 #endif 581 582 #endif /* __STM32F37X_USART_H */ 583 584 /** 585 * @} 586 */ 587 588 /** 589 * @} 590 */ 591 592 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 593