21 #ifndef STM32L4xx_LL_USART_H 22 #define STM32L4xx_LL_USART_H 29 #include "stm32l4xx.h" 35 #if defined (USART1) || defined (USART2) || defined (USART3) || defined (UART4) || defined (UART5) 43 #if defined(USART_PRESC_PRESCALER) 77 #if defined(USE_FULL_LL_DRIVER) 87 #if defined(USE_FULL_LL_DRIVER) 97 #if defined(USART_PRESC_PRESCALER) 187 #define LL_USART_ICR_PECF USART_ICR_PECF 188 #define LL_USART_ICR_FECF USART_ICR_FECF 189 #define LL_USART_ICR_NECF USART_ICR_NECF 190 #define LL_USART_ICR_ORECF USART_ICR_ORECF 191 #define LL_USART_ICR_IDLECF USART_ICR_IDLECF 192 #if defined(USART_CR1_FIFOEN) 193 #define LL_USART_ICR_TXFECF USART_ICR_TXFECF 195 #define LL_USART_ICR_TCCF USART_ICR_TCCF 196 #if defined(USART_TCBGT_SUPPORT) 197 #define LL_USART_ICR_TCBGTCF USART_ICR_TCBGTCF 199 #define LL_USART_ICR_LBDCF USART_ICR_LBDCF 200 #define LL_USART_ICR_CTSCF USART_ICR_CTSCF 201 #define LL_USART_ICR_RTOCF USART_ICR_RTOCF 202 #define LL_USART_ICR_EOBCF USART_ICR_EOBCF 203 #if defined(USART_CR2_SLVEN) 204 #define LL_USART_ICR_UDRCF USART_ICR_UDRCF 206 #define LL_USART_ICR_CMCF USART_ICR_CMCF 207 #define LL_USART_ICR_WUCF USART_ICR_WUCF 216 #define LL_USART_ISR_PE USART_ISR_PE 217 #define LL_USART_ISR_FE USART_ISR_FE 218 #define LL_USART_ISR_NE USART_ISR_NE 219 #define LL_USART_ISR_ORE USART_ISR_ORE 220 #define LL_USART_ISR_IDLE USART_ISR_IDLE 221 #if defined(USART_CR1_FIFOEN) 222 #define LL_USART_ISR_RXNE_RXFNE USART_ISR_RXNE_RXFNE 224 #define LL_USART_ISR_RXNE USART_ISR_RXNE 226 #define LL_USART_ISR_TC USART_ISR_TC 227 #if defined(USART_CR1_FIFOEN) 228 #define LL_USART_ISR_TXE_TXFNF USART_ISR_TXE_TXFNF 230 #define LL_USART_ISR_TXE USART_ISR_TXE 232 #define LL_USART_ISR_LBDF USART_ISR_LBDF 233 #define LL_USART_ISR_CTSIF USART_ISR_CTSIF 234 #define LL_USART_ISR_CTS USART_ISR_CTS 235 #define LL_USART_ISR_RTOF USART_ISR_RTOF 236 #define LL_USART_ISR_EOBF USART_ISR_EOBF 237 #if defined(USART_CR2_SLVEN) 238 #define LL_USART_ISR_UDR USART_ISR_UDR 240 #define LL_USART_ISR_ABRE USART_ISR_ABRE 241 #define LL_USART_ISR_ABRF USART_ISR_ABRF 242 #define LL_USART_ISR_BUSY USART_ISR_BUSY 243 #define LL_USART_ISR_CMF USART_ISR_CMF 244 #define LL_USART_ISR_SBKF USART_ISR_SBKF 245 #define LL_USART_ISR_RWU USART_ISR_RWU 246 #define LL_USART_ISR_WUF USART_ISR_WUF 247 #define LL_USART_ISR_TEACK USART_ISR_TEACK 248 #define LL_USART_ISR_REACK USART_ISR_REACK 249 #if defined(USART_CR1_FIFOEN) 250 #define LL_USART_ISR_TXFE USART_ISR_TXFE 251 #define LL_USART_ISR_RXFF USART_ISR_RXFF 253 #if defined(USART_TCBGT_SUPPORT) 254 #define LL_USART_ISR_TCBGT USART_ISR_TCBGT 256 #if defined(USART_CR1_FIFOEN) 257 #define LL_USART_ISR_RXFT USART_ISR_RXFT 258 #define LL_USART_ISR_TXFT USART_ISR_TXFT 268 #define LL_USART_CR1_IDLEIE USART_CR1_IDLEIE 269 #if defined(USART_CR1_FIFOEN) 270 #define LL_USART_CR1_RXNEIE_RXFNEIE USART_CR1_RXNEIE_RXFNEIE 272 #define LL_USART_CR1_RXNEIE USART_CR1_RXNEIE 274 #define LL_USART_CR1_TCIE USART_CR1_TCIE 275 #if defined(USART_CR1_FIFOEN) 276 #define LL_USART_CR1_TXEIE_TXFNFIE USART_CR1_TXEIE_TXFNFIE 278 #define LL_USART_CR1_TXEIE USART_CR1_TXEIE 280 #define LL_USART_CR1_PEIE USART_CR1_PEIE 281 #define LL_USART_CR1_CMIE USART_CR1_CMIE 282 #define LL_USART_CR1_RTOIE USART_CR1_RTOIE 283 #define LL_USART_CR1_EOBIE USART_CR1_EOBIE 284 #if defined(USART_CR1_FIFOEN) 285 #define LL_USART_CR1_TXFEIE USART_CR1_TXFEIE 286 #define LL_USART_CR1_RXFFIE USART_CR1_RXFFIE 288 #define LL_USART_CR2_LBDIE USART_CR2_LBDIE 289 #define LL_USART_CR3_EIE USART_CR3_EIE 290 #define LL_USART_CR3_CTSIE USART_CR3_CTSIE 291 #define LL_USART_CR3_WUFIE USART_CR3_WUFIE 292 #if defined(USART_CR1_FIFOEN) 293 #define LL_USART_CR3_TXFTIE USART_CR3_TXFTIE 295 #if defined(USART_TCBGT_SUPPORT) 296 #define LL_USART_CR3_TCBGTIE USART_CR3_TCBGTIE 298 #if defined(USART_CR1_FIFOEN) 299 #define LL_USART_CR3_RXFTIE USART_CR3_RXFTIE 305 #if defined(USART_CR1_FIFOEN) 309 #define LL_USART_FIFOTHRESHOLD_1_8 0x00000000U 310 #define LL_USART_FIFOTHRESHOLD_1_4 0x00000001U 311 #define LL_USART_FIFOTHRESHOLD_1_2 0x00000002U 312 #define LL_USART_FIFOTHRESHOLD_3_4 0x00000003U 313 #define LL_USART_FIFOTHRESHOLD_7_8 0x00000004U 314 #define LL_USART_FIFOTHRESHOLD_8_8 0x00000005U 323 #define LL_USART_DIRECTION_NONE 0x00000000U 324 #define LL_USART_DIRECTION_RX USART_CR1_RE 325 #define LL_USART_DIRECTION_TX USART_CR1_TE 326 #define LL_USART_DIRECTION_TX_RX (USART_CR1_TE |USART_CR1_RE) 334 #define LL_USART_PARITY_NONE 0x00000000U 335 #define LL_USART_PARITY_EVEN USART_CR1_PCE 336 #define LL_USART_PARITY_ODD (USART_CR1_PCE | USART_CR1_PS) 344 #define LL_USART_WAKEUP_IDLELINE 0x00000000U 345 #define LL_USART_WAKEUP_ADDRESSMARK USART_CR1_WAKE 353 #define LL_USART_DATAWIDTH_7B USART_CR1_M1 354 #define LL_USART_DATAWIDTH_8B 0x00000000U 355 #define LL_USART_DATAWIDTH_9B USART_CR1_M0 363 #define LL_USART_OVERSAMPLING_16 0x00000000U 364 #define LL_USART_OVERSAMPLING_8 USART_CR1_OVER8 369 #if defined(USE_FULL_LL_DRIVER) 374 #define LL_USART_CLOCK_DISABLE 0x00000000U 375 #define LL_USART_CLOCK_ENABLE USART_CR2_CLKEN 384 #define LL_USART_LASTCLKPULSE_NO_OUTPUT 0x00000000U 385 #define LL_USART_LASTCLKPULSE_OUTPUT USART_CR2_LBCL 393 #define LL_USART_PHASE_1EDGE 0x00000000U 394 #define LL_USART_PHASE_2EDGE USART_CR2_CPHA 402 #define LL_USART_POLARITY_LOW 0x00000000U 403 #define LL_USART_POLARITY_HIGH USART_CR2_CPOL 408 #if defined(USART_PRESC_PRESCALER) 412 #define LL_USART_PRESCALER_DIV1 0x00000000U 413 #define LL_USART_PRESCALER_DIV2 (USART_PRESC_PRESCALER_0) 414 #define LL_USART_PRESCALER_DIV4 (USART_PRESC_PRESCALER_1) 415 #define LL_USART_PRESCALER_DIV6 (USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) 416 #define LL_USART_PRESCALER_DIV8 (USART_PRESC_PRESCALER_2) 417 #define LL_USART_PRESCALER_DIV10 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_0) 418 #define LL_USART_PRESCALER_DIV12 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_1) 419 #define LL_USART_PRESCALER_DIV16 (USART_PRESC_PRESCALER_2 | USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) 420 #define LL_USART_PRESCALER_DIV32 (USART_PRESC_PRESCALER_3) 421 #define LL_USART_PRESCALER_DIV64 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_0) 422 #define LL_USART_PRESCALER_DIV128 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_1) 423 #define LL_USART_PRESCALER_DIV256 (USART_PRESC_PRESCALER_3 | USART_PRESC_PRESCALER_1 | USART_PRESC_PRESCALER_0) 432 #define LL_USART_STOPBITS_0_5 USART_CR2_STOP_0 433 #define LL_USART_STOPBITS_1 0x00000000U 434 #define LL_USART_STOPBITS_1_5 (USART_CR2_STOP_0 | USART_CR2_STOP_1) 435 #define LL_USART_STOPBITS_2 USART_CR2_STOP_1 443 #define LL_USART_TXRX_STANDARD 0x00000000U 444 #define LL_USART_TXRX_SWAPPED (USART_CR2_SWAP) 452 #define LL_USART_RXPIN_LEVEL_STANDARD 0x00000000U 453 #define LL_USART_RXPIN_LEVEL_INVERTED (USART_CR2_RXINV) 461 #define LL_USART_TXPIN_LEVEL_STANDARD 0x00000000U 462 #define LL_USART_TXPIN_LEVEL_INVERTED (USART_CR2_TXINV) 470 #define LL_USART_BINARY_LOGIC_POSITIVE 0x00000000U 471 #define LL_USART_BINARY_LOGIC_NEGATIVE USART_CR2_DATAINV 479 #define LL_USART_BITORDER_LSBFIRST 0x00000000U 480 #define LL_USART_BITORDER_MSBFIRST USART_CR2_MSBFIRST 488 #define LL_USART_AUTOBAUD_DETECT_ON_STARTBIT 0x00000000U 489 #define LL_USART_AUTOBAUD_DETECT_ON_FALLINGEDGE USART_CR2_ABRMODE_0 490 #define LL_USART_AUTOBAUD_DETECT_ON_7F_FRAME USART_CR2_ABRMODE_1 491 #define LL_USART_AUTOBAUD_DETECT_ON_55_FRAME (USART_CR2_ABRMODE_1 | USART_CR2_ABRMODE_0) 499 #define LL_USART_ADDRESS_DETECT_4B 0x00000000U 500 #define LL_USART_ADDRESS_DETECT_7B USART_CR2_ADDM7 508 #define LL_USART_HWCONTROL_NONE 0x00000000U 509 #define LL_USART_HWCONTROL_RTS USART_CR3_RTSE 510 #define LL_USART_HWCONTROL_CTS USART_CR3_CTSE 511 #define LL_USART_HWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) 519 #define LL_USART_WAKEUP_ON_ADDRESS 0x00000000U 520 #define LL_USART_WAKEUP_ON_STARTBIT USART_CR3_WUS_1 521 #define LL_USART_WAKEUP_ON_RXNE (USART_CR3_WUS_0 | USART_CR3_WUS_1) 529 #define LL_USART_IRDA_POWER_NORMAL 0x00000000U 530 #define LL_USART_IRDA_POWER_LOW USART_CR3_IRLP 538 #define LL_USART_LINBREAK_DETECT_10B 0x00000000U 539 #define LL_USART_LINBREAK_DETECT_11B USART_CR2_LBDL 547 #define LL_USART_DE_POLARITY_HIGH 0x00000000U 548 #define LL_USART_DE_POLARITY_LOW USART_CR3_DEP 556 #define LL_USART_DMA_REG_DATA_TRANSMIT 0x00000000U 557 #define LL_USART_DMA_REG_DATA_RECEIVE 0x00000001U 582 #define LL_USART_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) 590 #define LL_USART_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) 621 #if defined(USART_PRESC_PRESCALER) 622 #define __LL_USART_DIV_SAMPLING8(__PERIPHCLK__, __PRESCALER__, __BAUDRATE__) (((((__PERIPHCLK__)/(USART_PRESCALER_TAB[(__PRESCALER__)]))*2U)\ 623 + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) 625 #define __LL_USART_DIV_SAMPLING8(__PERIPHCLK__, __BAUDRATE__) ((((__PERIPHCLK__)*2U)\ 626 + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) 651 #if defined(USART_PRESC_PRESCALER) 652 #define __LL_USART_DIV_SAMPLING16(__PERIPHCLK__, __PRESCALER__, __BAUDRATE__) ((((__PERIPHCLK__)/(USART_PRESCALER_TAB[(__PRESCALER__)]))\ 653 + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) 655 #define __LL_USART_DIV_SAMPLING16(__PERIPHCLK__, __BAUDRATE__) (((__PERIPHCLK__) + ((__BAUDRATE__)/2U))/(__BAUDRATE__)) 684 SET_BIT(USARTx->CR1, USART_CR1_UE);
709 return ((READ_BIT(USARTx->CR1, USART_CR1_UE) == (USART_CR1_UE)) ? 1UL : 0UL);
712 #if defined(USART_CR1_FIFOEN) 723 SET_BIT(USARTx->CR1, USART_CR1_FIFOEN);
736 CLEAR_BIT(USARTx->CR1, USART_CR1_FIFOEN);
749 return ((READ_BIT(USARTx->CR1, USART_CR1_FIFOEN) == (USART_CR1_FIFOEN)) ? 1UL : 0UL);
769 MODIFY_REG(USARTx->CR3, USART_CR3_TXFTCFG, Threshold << USART_CR3_TXFTCFG_Pos);
788 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos);
808 MODIFY_REG(USARTx->CR3, USART_CR3_RXFTCFG, Threshold << USART_CR3_RXFTCFG_Pos);
827 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos);
855 MODIFY_REG(USARTx->CR3, USART_CR3_TXFTCFG | USART_CR3_RXFTCFG, (TXThreshold << USART_CR3_TXFTCFG_Pos) | (RXThreshold << USART_CR3_RXFTCFG_Pos));
871 SET_BIT(USARTx->CR1, USART_CR1_UESM);
898 return ((READ_BIT(USARTx->CR1, USART_CR1_UESM) == (USART_CR1_UESM)) ? 1UL : 0UL);
901 #if defined(USART_CR3_UCESM) 911 SET_BIT(USARTx->CR3, USART_CR3_UCESM);
934 return (READ_BIT(USARTx->CR3, USART_CR3_UCESM) == (USART_CR3_UCESM));
946 SET_BIT(USARTx->CR1, USART_CR1_RE);
968 SET_BIT(USARTx->CR1, USART_CR1_TE);
997 MODIFY_REG(USARTx->CR1, USART_CR1_RE | USART_CR1_TE, TransferDirection);
1013 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_RE | USART_CR1_TE));
1032 MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE, Parity);
1047 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE));
1061 MODIFY_REG(USARTx->CR1, USART_CR1_WAKE, Method);
1074 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_WAKE));
1090 MODIFY_REG(USARTx->CR1, USART_CR1_M, DataWidth);
1105 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_M));
1116 SET_BIT(USARTx->CR1, USART_CR1_MME);
1138 return ((READ_BIT(USARTx->CR1, USART_CR1_MME) == (USART_CR1_MME)) ? 1UL : 0UL);
1152 MODIFY_REG(USARTx->CR1, USART_CR1_OVER8, OverSampling);
1165 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_OVER8));
1181 MODIFY_REG(USARTx->CR2, USART_CR2_LBCL, LastBitClockPulse);
1197 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBCL));
1213 MODIFY_REG(USARTx->CR2, USART_CR2_CPHA, ClockPhase);
1228 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPHA));
1244 MODIFY_REG(USARTx->CR2, USART_CR2_CPOL, ClockPolarity);
1259 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_CPOL));
1285 __STATIC_INLINE
void LL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput)
1287 MODIFY_REG(USARTx->CR2, USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_LBCL, Phase | Polarity | LBCPOutput);
1290 #if defined(USART_PRESC_PRESCALER) 1314 MODIFY_REG(USARTx->PRESC, USART_PRESC_PRESCALER, (uint16_t)PrescalerValue);
1339 return (uint32_t)(READ_BIT(USARTx->PRESC, USART_PRESC_PRESCALER));
1353 SET_BIT(USARTx->CR2, USART_CR2_CLKEN);
1366 CLEAR_BIT(USARTx->CR2, USART_CR2_CLKEN);
1379 return ((READ_BIT(USARTx->CR2, USART_CR2_CLKEN) == (USART_CR2_CLKEN)) ? 1UL : 0UL);
1395 MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits);
1410 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_STOP));
1443 MODIFY_REG(USARTx->CR1, USART_CR1_PS | USART_CR1_PCE | USART_CR1_M, Parity | DataWidth);
1444 MODIFY_REG(USARTx->CR2, USART_CR2_STOP, StopBits);
1458 MODIFY_REG(USARTx->CR2, USART_CR2_SWAP, SwapConfig);
1471 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_SWAP));
1485 MODIFY_REG(USARTx->CR2, USART_CR2_RXINV, PinInvMethod);
1498 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_RXINV));
1512 MODIFY_REG(USARTx->CR2, USART_CR2_TXINV, PinInvMethod);
1525 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_TXINV));
1541 MODIFY_REG(USARTx->CR2, USART_CR2_DATAINV, DataLogic);
1554 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_DATAINV));
1570 MODIFY_REG(USARTx->CR2, USART_CR2_MSBFIRST, BitOrder);
1585 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_MSBFIRST));
1598 SET_BIT(USARTx->CR2, USART_CR2_ABREN);
1611 CLEAR_BIT(USARTx->CR2, USART_CR2_ABREN);
1624 return ((READ_BIT(USARTx->CR2, USART_CR2_ABREN) == (USART_CR2_ABREN)) ? 1UL : 0UL);
1642 MODIFY_REG(USARTx->CR2, USART_CR2_ABRMODE, AutoBaudRateMode);
1659 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ABRMODE));
1670 SET_BIT(USARTx->CR2, USART_CR2_RTOEN);
1681 CLEAR_BIT(USARTx->CR2, USART_CR2_RTOEN);
1692 return ((READ_BIT(USARTx->CR2, USART_CR2_RTOEN) == (USART_CR2_RTOEN)) ? 1UL : 0UL);
1720 MODIFY_REG(USARTx->CR2, USART_CR2_ADD | USART_CR2_ADDM7,
1721 (uint32_t)(AddressLen | (NodeAddress << USART_CR2_ADD_Pos)));
1736 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADD) >> USART_CR2_ADD_Pos);
1749 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_ADDM7));
1762 SET_BIT(USARTx->CR3, USART_CR3_RTSE);
1788 SET_BIT(USARTx->CR3, USART_CR3_CTSE);
1820 MODIFY_REG(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE, HardwareFlowControl);
1838 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_RTSE | USART_CR3_CTSE));
1849 SET_BIT(USARTx->CR3, USART_CR3_ONEBIT);
1860 CLEAR_BIT(USARTx->CR3, USART_CR3_ONEBIT);
1871 return ((READ_BIT(USARTx->CR3, USART_CR3_ONEBIT) == (USART_CR3_ONEBIT)) ? 1UL : 0UL);
1882 CLEAR_BIT(USARTx->CR3, USART_CR3_OVRDIS);
1893 SET_BIT(USARTx->CR3, USART_CR3_OVRDIS);
1904 return ((READ_BIT(USARTx->CR3, USART_CR3_OVRDIS) != USART_CR3_OVRDIS) ? 1UL : 0UL);
1921 MODIFY_REG(USARTx->CR3, USART_CR3_WUS, Type);
1937 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_WUS));
1971 #if defined(USART_PRESC_PRESCALER) 1983 #if defined(USART_PRESC_PRESCALER) 1984 if (PrescalerValue > LL_USART_PRESCALER_DIV256)
1988 else if (OverSampling == LL_USART_OVERSAMPLING_8)
1990 if (OverSampling == LL_USART_OVERSAMPLING_8)
1993 #if defined(USART_PRESC_PRESCALER) 1994 usartdiv = (uint16_t)(__LL_USART_DIV_SAMPLING8(PeriphClk, (uint8_t)PrescalerValue, BaudRate));
1996 usartdiv = (uint16_t)(__LL_USART_DIV_SAMPLING8(PeriphClk, BaudRate));
1998 brrtemp = usartdiv & 0xFFF0U;
1999 brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
2004 #if defined(USART_PRESC_PRESCALER) 2005 USARTx->BRR = (uint16_t)(__LL_USART_DIV_SAMPLING16(PeriphClk, (uint8_t)PrescalerValue,
BaudRate));
2007 USARTx->BRR = (uint16_t)(__LL_USART_DIV_SAMPLING16(PeriphClk, BaudRate));
2040 #if defined(USART_PRESC_PRESCALER) 2041 __STATIC_INLINE uint32_t LL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t PrescalerValue,
2042 uint32_t OverSampling)
2044 __STATIC_INLINE uint32_t LL_USART_GetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling)
2047 register uint32_t usartdiv;
2049 #if defined(USART_PRESC_PRESCALER) 2050 register uint32_t
periphclkpresc = (uint32_t)(PeriphClk / (USART_PRESCALER_TAB[(uint8_t)PrescalerValue]));
2053 usartdiv = USARTx->BRR;
2059 else if (OverSampling == LL_USART_OVERSAMPLING_8)
2061 usartdiv = (uint16_t)((usartdiv & 0xFFF0U) | ((usartdiv & 0x0007U) << 1U)) ;
2064 #if defined(USART_PRESC_PRESCALER) 2065 brrresult = (periphclkpresc * 2U) / usartdiv;
2067 brrresult = (PeriphClk * 2U) / usartdiv;
2073 if ((usartdiv & 0xFFFFU) != 0U)
2075 #if defined(USART_PRESC_PRESCALER) 2076 brrresult = periphclkpresc / usartdiv;
2078 brrresult = PeriphClk / usartdiv;
2092 __STATIC_INLINE
void LL_USART_SetRxTimeout(USART_TypeDef *USARTx, uint32_t Timeout)
2094 MODIFY_REG(USARTx->RTOR, USART_RTOR_RTO, Timeout);
2103 __STATIC_INLINE uint32_t LL_USART_GetRxTimeout(USART_TypeDef *USARTx)
2105 return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_RTO));
2115 __STATIC_INLINE
void LL_USART_SetBlockLength(USART_TypeDef *USARTx, uint32_t BlockLength)
2117 MODIFY_REG(USARTx->RTOR, USART_RTOR_BLEN, BlockLength << USART_RTOR_BLEN_Pos);
2126 __STATIC_INLINE uint32_t LL_USART_GetBlockLength(USART_TypeDef *USARTx)
2128 return (uint32_t)(READ_BIT(USARTx->RTOR, USART_RTOR_BLEN) >> USART_RTOR_BLEN_Pos);
2147 __STATIC_INLINE
void LL_USART_EnableIrda(USART_TypeDef *USARTx)
2149 SET_BIT(USARTx->CR3, USART_CR3_IREN);
2160 __STATIC_INLINE
void LL_USART_DisableIrda(USART_TypeDef *USARTx)
2173 __STATIC_INLINE uint32_t LL_USART_IsEnabledIrda(USART_TypeDef *USARTx)
2175 return ((READ_BIT(USARTx->CR3, USART_CR3_IREN) == (USART_CR3_IREN)) ? 1UL : 0UL);
2189 __STATIC_INLINE
void LL_USART_SetIrdaPowerMode(USART_TypeDef *USARTx, uint32_t PowerMode)
2191 MODIFY_REG(USARTx->CR3, USART_CR3_IRLP, PowerMode);
2204 __STATIC_INLINE uint32_t LL_USART_GetIrdaPowerMode(USART_TypeDef *USARTx)
2206 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_IRLP));
2219 __STATIC_INLINE
void LL_USART_SetIrdaPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
2221 MODIFY_REG(USARTx->GTPR, (uint16_t)USART_GTPR_PSC, (uint16_t)PrescalerValue);
2233 __STATIC_INLINE uint32_t LL_USART_GetIrdaPrescaler(USART_TypeDef *USARTx)
2235 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC));
2254 __STATIC_INLINE
void LL_USART_EnableSmartcardNACK(USART_TypeDef *USARTx)
2256 SET_BIT(USARTx->CR3, USART_CR3_NACK);
2267 __STATIC_INLINE
void LL_USART_DisableSmartcardNACK(USART_TypeDef *USARTx)
2280 __STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcardNACK(USART_TypeDef *USARTx)
2282 return ((READ_BIT(USARTx->CR3, USART_CR3_NACK) == (USART_CR3_NACK)) ? 1UL : 0UL);
2293 __STATIC_INLINE
void LL_USART_EnableSmartcard(USART_TypeDef *USARTx)
2295 SET_BIT(USARTx->CR3, USART_CR3_SCEN);
2306 __STATIC_INLINE
void LL_USART_DisableSmartcard(USART_TypeDef *USARTx)
2319 __STATIC_INLINE uint32_t LL_USART_IsEnabledSmartcard(USART_TypeDef *USARTx)
2321 return ((READ_BIT(USARTx->CR3, USART_CR3_SCEN) == (USART_CR3_SCEN)) ? 1UL : 0UL);
2338 __STATIC_INLINE
void LL_USART_SetSmartcardAutoRetryCount(USART_TypeDef *USARTx, uint32_t AutoRetryCount)
2340 MODIFY_REG(USARTx->CR3, USART_CR3_SCARCNT, AutoRetryCount << USART_CR3_SCARCNT_Pos);
2351 __STATIC_INLINE uint32_t LL_USART_GetSmartcardAutoRetryCount(USART_TypeDef *USARTx)
2353 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_SCARCNT) >> USART_CR3_SCARCNT_Pos);
2366 __STATIC_INLINE
void LL_USART_SetSmartcardPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
2368 MODIFY_REG(USARTx->GTPR, (uint16_t)USART_GTPR_PSC, (uint16_t)PrescalerValue);
2380 __STATIC_INLINE uint32_t LL_USART_GetSmartcardPrescaler(USART_TypeDef *USARTx)
2382 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_PSC));
2395 __STATIC_INLINE
void LL_USART_SetSmartcardGuardTime(USART_TypeDef *USARTx, uint32_t GuardTime)
2397 MODIFY_REG(USARTx->GTPR, (uint16_t)USART_GTPR_GT, (uint16_t)(GuardTime << USART_GTPR_GT_Pos));
2409 __STATIC_INLINE uint32_t LL_USART_GetSmartcardGuardTime(USART_TypeDef *USARTx)
2411 return (uint32_t)(READ_BIT(USARTx->GTPR, USART_GTPR_GT) >> USART_GTPR_GT_Pos);
2430 __STATIC_INLINE
void LL_USART_EnableHalfDuplex(USART_TypeDef *USARTx)
2432 SET_BIT(USARTx->CR3, USART_CR3_HDSEL);
2443 __STATIC_INLINE
void LL_USART_DisableHalfDuplex(USART_TypeDef *USARTx)
2445 CLEAR_BIT(USARTx->CR3, USART_CR3_HDSEL);
2456 __STATIC_INLINE uint32_t LL_USART_IsEnabledHalfDuplex(USART_TypeDef *USARTx)
2458 return ((READ_BIT(USARTx->CR3, USART_CR3_HDSEL) == (USART_CR3_HDSEL)) ? 1UL : 0UL);
2465 #if defined(USART_CR2_SLVEN) 2477 __STATIC_INLINE
void LL_USART_EnableSPISlave(USART_TypeDef *USARTx)
2479 SET_BIT(USARTx->CR2, USART_CR2_SLVEN);
2490 __STATIC_INLINE
void LL_USART_DisableSPISlave(USART_TypeDef *USARTx)
2492 CLEAR_BIT(USARTx->CR2, USART_CR2_SLVEN);
2503 __STATIC_INLINE uint32_t LL_USART_IsEnabledSPISlave(USART_TypeDef *USARTx)
2505 return ((READ_BIT(USARTx->CR2, USART_CR2_SLVEN) == (USART_CR2_SLVEN)) ? 1UL : 0UL);
2518 __STATIC_INLINE
void LL_USART_EnableSPISlaveSelect(USART_TypeDef *USARTx)
2520 CLEAR_BIT(USARTx->CR2, USART_CR2_DIS_NSS);
2532 __STATIC_INLINE
void LL_USART_DisableSPISlaveSelect(USART_TypeDef *USARTx)
2534 SET_BIT(USARTx->CR2, USART_CR2_DIS_NSS);
2545 __STATIC_INLINE uint32_t LL_USART_IsEnabledSPISlaveSelect(USART_TypeDef *USARTx)
2547 return ((READ_BIT(USARTx->CR2, USART_CR2_DIS_NSS) != (USART_CR2_DIS_NSS)) ? 1UL : 0UL);
2570 __STATIC_INLINE
void LL_USART_SetLINBrkDetectionLen(USART_TypeDef *USARTx, uint32_t LINBDLength)
2572 MODIFY_REG(USARTx->CR2, USART_CR2_LBDL, LINBDLength);
2585 __STATIC_INLINE uint32_t LL_USART_GetLINBrkDetectionLen(USART_TypeDef *USARTx)
2587 return (uint32_t)(READ_BIT(USARTx->CR2, USART_CR2_LBDL));
2598 __STATIC_INLINE
void LL_USART_EnableLIN(USART_TypeDef *USARTx)
2600 SET_BIT(USARTx->CR2, USART_CR2_LINEN);
2611 __STATIC_INLINE
void LL_USART_DisableLIN(USART_TypeDef *USARTx)
2613 CLEAR_BIT(USARTx->CR2, USART_CR2_LINEN);
2624 __STATIC_INLINE uint32_t LL_USART_IsEnabledLIN(USART_TypeDef *USARTx)
2626 return ((READ_BIT(USARTx->CR2, USART_CR2_LINEN) == (USART_CR2_LINEN)) ? 1UL : 0UL);
2646 __STATIC_INLINE
void LL_USART_SetDEDeassertionTime(USART_TypeDef *USARTx, uint32_t Time)
2648 MODIFY_REG(USARTx->CR1, USART_CR1_DEDT, Time << USART_CR1_DEDT_Pos);
2659 __STATIC_INLINE uint32_t LL_USART_GetDEDeassertionTime(USART_TypeDef *USARTx)
2661 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEDT) >> USART_CR1_DEDT_Pos);
2673 __STATIC_INLINE
void LL_USART_SetDEAssertionTime(USART_TypeDef *USARTx, uint32_t Time)
2675 MODIFY_REG(USARTx->CR1, USART_CR1_DEAT, Time << USART_CR1_DEAT_Pos);
2686 __STATIC_INLINE uint32_t LL_USART_GetDEAssertionTime(USART_TypeDef *USARTx)
2688 return (uint32_t)(READ_BIT(USARTx->CR1, USART_CR1_DEAT) >> USART_CR1_DEAT_Pos);
2699 __STATIC_INLINE
void LL_USART_EnableDEMode(USART_TypeDef *USARTx)
2701 SET_BIT(USARTx->CR3, USART_CR3_DEM);
2712 __STATIC_INLINE
void LL_USART_DisableDEMode(USART_TypeDef *USARTx)
2725 __STATIC_INLINE uint32_t LL_USART_IsEnabledDEMode(USART_TypeDef *USARTx)
2727 return ((READ_BIT(USARTx->CR3, USART_CR3_DEM) == (USART_CR3_DEM)) ? 1UL : 0UL);
2741 __STATIC_INLINE
void LL_USART_SetDESignalPolarity(USART_TypeDef *USARTx, uint32_t Polarity)
2743 MODIFY_REG(USARTx->CR3, USART_CR3_DEP, Polarity);
2756 __STATIC_INLINE uint32_t LL_USART_GetDESignalPolarity(USART_TypeDef *USARTx)
2758 return (uint32_t)(READ_BIT(USARTx->CR3, USART_CR3_DEP));
2794 __STATIC_INLINE
void LL_USART_ConfigAsyncMode(USART_TypeDef *USARTx)
2799 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
2800 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL));
2830 __STATIC_INLINE
void LL_USART_ConfigSyncMode(USART_TypeDef *USARTx)
2835 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN));
2836 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN | USART_CR3_HDSEL));
2838 SET_BIT(USARTx->CR2, USART_CR2_CLKEN);
2870 __STATIC_INLINE
void LL_USART_ConfigLINMode(USART_TypeDef *USARTx)
2875 CLEAR_BIT(USARTx->CR2, (USART_CR2_CLKEN | USART_CR2_STOP));
2876 CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_SCEN | USART_CR3_HDSEL));
2878 SET_BIT(USARTx->CR2, USART_CR2_LINEN);
2908 __STATIC_INLINE
void LL_USART_ConfigHalfDuplexMode(USART_TypeDef *USARTx)
2913 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
2914 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_IREN));
2916 SET_BIT(USARTx->CR3, USART_CR3_HDSEL);
2948 __STATIC_INLINE
void LL_USART_ConfigSmartcardMode(USART_TypeDef *USARTx)
2953 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN));
2954 CLEAR_BIT(USARTx->CR3, (USART_CR3_IREN | USART_CR3_HDSEL));
2957 SET_BIT(USARTx->CR2, (USART_CR2_STOP_0 | USART_CR2_STOP_1 | USART_CR2_CLKEN));
2959 SET_BIT(USARTx->CR3, USART_CR3_SCEN);
2991 __STATIC_INLINE
void LL_USART_ConfigIrdaMode(USART_TypeDef *USARTx)
2996 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN | USART_CR2_STOP));
2997 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL));
2999 SET_BIT(USARTx->CR3, USART_CR3_IREN);
3029 __STATIC_INLINE
void LL_USART_ConfigMultiProcessMode(USART_TypeDef *USARTx)
3034 CLEAR_BIT(USARTx->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
3035 CLEAR_BIT(USARTx->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
3052 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_PE(USART_TypeDef *USARTx)
3054 return ((READ_BIT(USARTx->ISR, USART_ISR_PE) == (USART_ISR_PE)) ? 1UL : 0UL);
3063 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_FE(USART_TypeDef *USARTx)
3065 return ((READ_BIT(USARTx->ISR, USART_ISR_FE) == (USART_ISR_FE)) ? 1UL : 0UL);
3074 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_NE(USART_TypeDef *USARTx)
3076 return ((READ_BIT(USARTx->ISR, USART_ISR_NE) == (USART_ISR_NE)) ? 1UL : 0UL);
3085 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ORE(USART_TypeDef *USARTx)
3087 return ((READ_BIT(USARTx->ISR, USART_ISR_ORE) == (USART_ISR_ORE)) ? 1UL : 0UL);
3096 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_IDLE(USART_TypeDef *USARTx)
3098 return ((READ_BIT(USARTx->ISR, USART_ISR_IDLE) == (USART_ISR_IDLE)) ? 1UL : 0UL);
3101 #if defined(USART_CR1_FIFOEN) 3103 #define LL_USART_IsActiveFlag_RXNE LL_USART_IsActiveFlag_RXNE_RXFNE 3113 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXNE_RXFNE(USART_TypeDef *USARTx)
3115 return ((READ_BIT(USARTx->ISR, USART_ISR_RXNE_RXFNE) == (USART_ISR_RXNE_RXFNE)) ? 1UL : 0UL);
3125 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXNE(USART_TypeDef *USARTx)
3127 return ((READ_BIT(USARTx->ISR, USART_ISR_RXNE) == (USART_ISR_RXNE)) ? 1UL : 0UL);
3137 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TC(USART_TypeDef *USARTx)
3139 return ((READ_BIT(USARTx->ISR, USART_ISR_TC) == (USART_ISR_TC)) ? 1UL : 0UL);
3142 #if defined(USART_CR1_FIFOEN) 3144 #define LL_USART_IsActiveFlag_TXE LL_USART_IsActiveFlag_TXE_TXFNF 3154 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXE_TXFNF(USART_TypeDef *USARTx)
3156 return ((READ_BIT(USARTx->ISR, USART_ISR_TXE_TXFNF) == (USART_ISR_TXE_TXFNF)) ? 1UL : 0UL);
3166 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXE(USART_TypeDef *USARTx)
3168 return ((READ_BIT(USARTx->ISR, USART_ISR_TXE) == (USART_ISR_TXE)) ? 1UL : 0UL);
3180 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_LBD(USART_TypeDef *USARTx)
3182 return ((READ_BIT(USARTx->ISR, USART_ISR_LBDF) == (USART_ISR_LBDF)) ? 1UL : 0UL);
3193 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_nCTS(USART_TypeDef *USARTx)
3195 return ((READ_BIT(USARTx->ISR, USART_ISR_CTSIF) == (USART_ISR_CTSIF)) ? 1UL : 0UL);
3206 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CTS(USART_TypeDef *USARTx)
3208 return ((READ_BIT(USARTx->ISR, USART_ISR_CTS) == (USART_ISR_CTS)) ? 1UL : 0UL);
3217 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RTO(USART_TypeDef *USARTx)
3219 return ((READ_BIT(USARTx->ISR, USART_ISR_RTOF) == (USART_ISR_RTOF)) ? 1UL : 0UL);
3230 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_EOB(USART_TypeDef *USARTx)
3232 return ((READ_BIT(USARTx->ISR, USART_ISR_EOBF) == (USART_ISR_EOBF)) ? 1UL : 0UL);
3235 #if defined(USART_CR2_SLVEN) 3244 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_UDR(USART_TypeDef *USARTx)
3246 return ((READ_BIT(USARTx->ISR, USART_ISR_UDR) == (USART_ISR_UDR)) ? 1UL : 0UL);
3258 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABRE(USART_TypeDef *USARTx)
3260 return ((READ_BIT(USARTx->ISR, USART_ISR_ABRE) == (USART_ISR_ABRE)) ? 1UL : 0UL);
3271 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_ABR(USART_TypeDef *USARTx)
3273 return ((READ_BIT(USARTx->ISR, USART_ISR_ABRF) == (USART_ISR_ABRF)) ? 1UL : 0UL);
3282 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_BUSY(USART_TypeDef *USARTx)
3284 return ((READ_BIT(USARTx->ISR, USART_ISR_BUSY) == (USART_ISR_BUSY)) ? 1UL : 0UL);
3293 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_CM(USART_TypeDef *USARTx)
3295 return ((READ_BIT(USARTx->ISR, USART_ISR_CMF) == (USART_ISR_CMF)) ? 1UL : 0UL);
3304 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_SBK(USART_TypeDef *USARTx)
3306 return ((READ_BIT(USARTx->ISR, USART_ISR_SBKF) == (USART_ISR_SBKF)) ? 1UL : 0UL);
3315 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RWU(USART_TypeDef *USARTx)
3317 return ((READ_BIT(USARTx->ISR, USART_ISR_RWU) == (USART_ISR_RWU)) ? 1UL : 0UL);
3328 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_WKUP(USART_TypeDef *USARTx)
3330 return ((READ_BIT(USARTx->ISR, USART_ISR_WUF) == (USART_ISR_WUF)) ? 1UL : 0UL);
3339 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TEACK(USART_TypeDef *USARTx)
3341 return ((READ_BIT(USARTx->ISR, USART_ISR_TEACK) == (USART_ISR_TEACK)) ? 1UL : 0UL);
3350 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_REACK(USART_TypeDef *USARTx)
3352 return ((READ_BIT(USARTx->ISR, USART_ISR_REACK) == (USART_ISR_REACK)) ? 1UL : 0UL);
3355 #if defined(USART_CR1_FIFOEN) 3364 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXFE(USART_TypeDef *USARTx)
3366 return ((READ_BIT(USARTx->ISR, USART_ISR_TXFE) == (USART_ISR_TXFE)) ? 1UL : 0UL);
3377 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXFF(USART_TypeDef *USARTx)
3379 return ((READ_BIT(USARTx->ISR, USART_ISR_RXFF) == (USART_ISR_RXFF)) ? 1UL : 0UL);
3383 #if defined(USART_TCBGT_SUPPORT) 3391 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TCBGT(USART_TypeDef *USARTx)
3393 return ((READ_BIT(USARTx->ISR, USART_ISR_TCBGT) == (USART_ISR_TCBGT)) ? 1UL : 0UL);
3397 #if defined(USART_CR1_FIFOEN) 3406 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_TXFT(USART_TypeDef *USARTx)
3408 return ((READ_BIT(USARTx->ISR, USART_ISR_TXFT) == (USART_ISR_TXFT)) ? 1UL : 0UL);
3419 __STATIC_INLINE uint32_t LL_USART_IsActiveFlag_RXFT(USART_TypeDef *USARTx)
3421 return ((READ_BIT(USARTx->ISR, USART_ISR_RXFT) == (USART_ISR_RXFT)) ? 1UL : 0UL);
3431 __STATIC_INLINE
void LL_USART_ClearFlag_PE(USART_TypeDef *USARTx)
3433 WRITE_REG(USARTx->ICR, USART_ICR_PECF);
3442 __STATIC_INLINE
void LL_USART_ClearFlag_FE(USART_TypeDef *USARTx)
3444 WRITE_REG(USARTx->ICR, USART_ICR_FECF);
3453 __STATIC_INLINE
void LL_USART_ClearFlag_NE(USART_TypeDef *USARTx)
3455 WRITE_REG(USARTx->ICR, USART_ICR_NECF);
3464 __STATIC_INLINE
void LL_USART_ClearFlag_ORE(USART_TypeDef *USARTx)
3466 WRITE_REG(USARTx->ICR, USART_ICR_ORECF);
3475 __STATIC_INLINE
void LL_USART_ClearFlag_IDLE(USART_TypeDef *USARTx)
3477 WRITE_REG(USARTx->ICR, USART_ICR_IDLECF);
3480 #if defined(USART_CR1_FIFOEN) 3489 __STATIC_INLINE
void LL_USART_ClearFlag_TXFE(USART_TypeDef *USARTx)
3491 WRITE_REG(USARTx->ICR, USART_ICR_TXFECF);
3501 __STATIC_INLINE
void LL_USART_ClearFlag_TC(USART_TypeDef *USARTx)
3503 WRITE_REG(USARTx->ICR, USART_ICR_TCCF);
3506 #if defined(USART_TCBGT_SUPPORT) 3514 __STATIC_INLINE
void LL_USART_ClearFlag_TCBGT(USART_TypeDef *USARTx)
3516 WRITE_REG(USARTx->ICR, USART_ICR_TCBGTCF);
3528 __STATIC_INLINE
void LL_USART_ClearFlag_LBD(USART_TypeDef *USARTx)
3530 WRITE_REG(USARTx->ICR, USART_ICR_LBDCF);
3541 __STATIC_INLINE
void LL_USART_ClearFlag_nCTS(USART_TypeDef *USARTx)
3543 WRITE_REG(USARTx->ICR, USART_ICR_CTSCF);
3552 __STATIC_INLINE
void LL_USART_ClearFlag_RTO(USART_TypeDef *USARTx)
3554 WRITE_REG(USARTx->ICR, USART_ICR_RTOCF);
3565 __STATIC_INLINE
void LL_USART_ClearFlag_EOB(USART_TypeDef *USARTx)
3567 WRITE_REG(USARTx->ICR, USART_ICR_EOBCF);
3570 #if defined(USART_CR2_SLVEN) 3579 __STATIC_INLINE
void LL_USART_ClearFlag_UDR(USART_TypeDef *USARTx)
3581 WRITE_REG(USARTx->ICR, USART_ICR_UDRCF);
3591 __STATIC_INLINE
void LL_USART_ClearFlag_CM(USART_TypeDef *USARTx)
3593 WRITE_REG(USARTx->ICR, USART_ICR_CMCF);
3604 __STATIC_INLINE
void LL_USART_ClearFlag_WKUP(USART_TypeDef *USARTx)
3606 WRITE_REG(USARTx->ICR, USART_ICR_WUCF);
3623 __STATIC_INLINE
void LL_USART_EnableIT_IDLE(USART_TypeDef *USARTx)
3625 SET_BIT(USARTx->CR1, USART_CR1_IDLEIE);
3628 #if defined(USART_CR1_FIFOEN) 3630 #define LL_USART_EnableIT_RXNE LL_USART_EnableIT_RXNE_RXFNE 3640 __STATIC_INLINE
void LL_USART_EnableIT_RXNE_RXFNE(USART_TypeDef *USARTx)
3642 SET_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE);
3652 __STATIC_INLINE
void LL_USART_EnableIT_RXNE(USART_TypeDef *USARTx)
3654 SET_BIT(USARTx->CR1, USART_CR1_RXNEIE);
3664 __STATIC_INLINE
void LL_USART_EnableIT_TC(USART_TypeDef *USARTx)
3666 SET_BIT(USARTx->CR1, USART_CR1_TCIE);
3669 #if defined(USART_CR1_FIFOEN) 3671 #define LL_USART_EnableIT_TXE LL_USART_EnableIT_TXE_TXFNF 3681 __STATIC_INLINE
void LL_USART_EnableIT_TXE_TXFNF(USART_TypeDef *USARTx)
3683 SET_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE);
3693 __STATIC_INLINE
void LL_USART_EnableIT_TXE(USART_TypeDef *USARTx)
3695 SET_BIT(USARTx->CR1, USART_CR1_TXEIE);
3705 __STATIC_INLINE
void LL_USART_EnableIT_PE(USART_TypeDef *USARTx)
3707 SET_BIT(USARTx->CR1, USART_CR1_PEIE);
3716 __STATIC_INLINE
void LL_USART_EnableIT_CM(USART_TypeDef *USARTx)
3718 SET_BIT(USARTx->CR1, USART_CR1_CMIE);
3727 __STATIC_INLINE
void LL_USART_EnableIT_RTO(USART_TypeDef *USARTx)
3729 SET_BIT(USARTx->CR1, USART_CR1_RTOIE);
3740 __STATIC_INLINE
void LL_USART_EnableIT_EOB(USART_TypeDef *USARTx)
3742 SET_BIT(USARTx->CR1, USART_CR1_EOBIE);
3745 #if defined(USART_CR1_FIFOEN) 3754 __STATIC_INLINE
void LL_USART_EnableIT_TXFE(USART_TypeDef *USARTx)
3756 SET_BIT(USARTx->CR1, USART_CR1_TXFEIE);
3765 __STATIC_INLINE
void LL_USART_EnableIT_RXFF(USART_TypeDef *USARTx)
3767 SET_BIT(USARTx->CR1, USART_CR1_RXFFIE);
3779 __STATIC_INLINE
void LL_USART_EnableIT_LBD(USART_TypeDef *USARTx)
3781 SET_BIT(USARTx->CR2, USART_CR2_LBDIE);
3794 __STATIC_INLINE
void LL_USART_EnableIT_ERROR(USART_TypeDef *USARTx)
3796 SET_BIT(USARTx->CR3, USART_CR3_EIE);
3807 __STATIC_INLINE
void LL_USART_EnableIT_CTS(USART_TypeDef *USARTx)
3809 SET_BIT(USARTx->CR3, USART_CR3_CTSIE);
3820 __STATIC_INLINE
void LL_USART_EnableIT_WKUP(USART_TypeDef *USARTx)
3822 SET_BIT(USARTx->CR3, USART_CR3_WUFIE);
3825 #if defined(USART_CR1_FIFOEN) 3834 __STATIC_INLINE
void LL_USART_EnableIT_TXFT(USART_TypeDef *USARTx)
3836 SET_BIT(USARTx->CR3, USART_CR3_TXFTIE);
3840 #if defined(USART_TCBGT_SUPPORT) 3850 __STATIC_INLINE
void LL_USART_EnableIT_TCBGT(USART_TypeDef *USARTx)
3852 SET_BIT(USARTx->CR3, USART_CR3_TCBGTIE);
3856 #if defined(USART_CR1_FIFOEN) 3865 __STATIC_INLINE
void LL_USART_EnableIT_RXFT(USART_TypeDef *USARTx)
3867 SET_BIT(USARTx->CR3, USART_CR3_RXFTIE);
3877 __STATIC_INLINE
void LL_USART_DisableIT_IDLE(USART_TypeDef *USARTx)
3879 CLEAR_BIT(USARTx->CR1, USART_CR1_IDLEIE);
3882 #if defined(USART_CR1_FIFOEN) 3884 #define LL_USART_DisableIT_RXNE LL_USART_DisableIT_RXNE_RXFNE 3894 __STATIC_INLINE
void LL_USART_DisableIT_RXNE_RXFNE(USART_TypeDef *USARTx)
3896 CLEAR_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE);
3906 __STATIC_INLINE
void LL_USART_DisableIT_RXNE(USART_TypeDef *USARTx)
3908 CLEAR_BIT(USARTx->CR1, USART_CR1_RXNEIE);
3918 __STATIC_INLINE
void LL_USART_DisableIT_TC(USART_TypeDef *USARTx)
3923 #if defined(USART_CR1_FIFOEN) 3925 #define LL_USART_DisableIT_TXE LL_USART_DisableIT_TXE_TXFNF 3935 __STATIC_INLINE
void LL_USART_DisableIT_TXE_TXFNF(USART_TypeDef *USARTx)
3937 CLEAR_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE);
3947 __STATIC_INLINE
void LL_USART_DisableIT_TXE(USART_TypeDef *USARTx)
3949 CLEAR_BIT(USARTx->CR1, USART_CR1_TXEIE);
3959 __STATIC_INLINE
void LL_USART_DisableIT_PE(USART_TypeDef *USARTx)
3970 __STATIC_INLINE
void LL_USART_DisableIT_CM(USART_TypeDef *USARTx)
3981 __STATIC_INLINE
void LL_USART_DisableIT_RTO(USART_TypeDef *USARTx)
3983 CLEAR_BIT(USARTx->CR1, USART_CR1_RTOIE);
3994 __STATIC_INLINE
void LL_USART_DisableIT_EOB(USART_TypeDef *USARTx)
3996 CLEAR_BIT(USARTx->CR1, USART_CR1_EOBIE);
3999 #if defined(USART_CR1_FIFOEN) 4008 __STATIC_INLINE
void LL_USART_DisableIT_TXFE(USART_TypeDef *USARTx)
4010 CLEAR_BIT(USARTx->CR1, USART_CR1_TXFEIE);
4021 __STATIC_INLINE
void LL_USART_DisableIT_RXFF(USART_TypeDef *USARTx)
4023 CLEAR_BIT(USARTx->CR1, USART_CR1_RXFFIE);
4035 __STATIC_INLINE
void LL_USART_DisableIT_LBD(USART_TypeDef *USARTx)
4037 CLEAR_BIT(USARTx->CR2, USART_CR2_LBDIE);
4050 __STATIC_INLINE
void LL_USART_DisableIT_ERROR(USART_TypeDef *USARTx)
4063 __STATIC_INLINE
void LL_USART_DisableIT_CTS(USART_TypeDef *USARTx)
4065 CLEAR_BIT(USARTx->CR3, USART_CR3_CTSIE);
4076 __STATIC_INLINE
void LL_USART_DisableIT_WKUP(USART_TypeDef *USARTx)
4078 CLEAR_BIT(USARTx->CR3, USART_CR3_WUFIE);
4081 #if defined(USART_CR1_FIFOEN) 4090 __STATIC_INLINE
void LL_USART_DisableIT_TXFT(USART_TypeDef *USARTx)
4092 CLEAR_BIT(USARTx->CR3, USART_CR3_TXFTIE);
4096 #if defined(USART_TCBGT_SUPPORT) 4106 __STATIC_INLINE
void LL_USART_DisableIT_TCBGT(USART_TypeDef *USARTx)
4108 CLEAR_BIT(USARTx->CR3, USART_CR3_TCBGTIE);
4112 #if defined(USART_CR1_FIFOEN) 4121 __STATIC_INLINE
void LL_USART_DisableIT_RXFT(USART_TypeDef *USARTx)
4123 CLEAR_BIT(USARTx->CR3, USART_CR3_RXFTIE);
4133 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_IDLE(USART_TypeDef *USARTx)
4135 return ((READ_BIT(USARTx->CR1, USART_CR1_IDLEIE) == (USART_CR1_IDLEIE)) ? 1UL : 0UL);
4138 #if defined(USART_CR1_FIFOEN) 4140 #define LL_USART_IsEnabledIT_RXNE LL_USART_IsEnabledIT_RXNE_RXFNE 4150 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXNE_RXFNE(USART_TypeDef *USARTx)
4152 return ((READ_BIT(USARTx->CR1, USART_CR1_RXNEIE_RXFNEIE) == (USART_CR1_RXNEIE_RXFNEIE)) ? 1UL : 0UL);
4162 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXNE(USART_TypeDef *USARTx)
4164 return ((READ_BIT(USARTx->CR1, USART_CR1_RXNEIE) == (USART_CR1_RXNEIE)) ? 1U : 0U);
4174 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TC(USART_TypeDef *USARTx)
4176 return ((READ_BIT(USARTx->CR1, USART_CR1_TCIE) == (USART_CR1_TCIE)) ? 1UL : 0UL);
4179 #if defined(USART_CR1_FIFOEN) 4181 #define LL_USART_IsEnabledIT_TXE LL_USART_IsEnabledIT_TXE_TXFNF 4191 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXE_TXFNF(USART_TypeDef *USARTx)
4193 return ((READ_BIT(USARTx->CR1, USART_CR1_TXEIE_TXFNFIE) == (USART_CR1_TXEIE_TXFNFIE)) ? 1UL : 0UL);
4203 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXE(USART_TypeDef *USARTx)
4205 return ((READ_BIT(USARTx->CR1, USART_CR1_TXEIE) == (USART_CR1_TXEIE)) ? 1U : 0U);
4215 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_PE(USART_TypeDef *USARTx)
4217 return ((READ_BIT(USARTx->CR1, USART_CR1_PEIE) == (USART_CR1_PEIE)) ? 1UL : 0UL);
4226 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CM(USART_TypeDef *USARTx)
4228 return ((READ_BIT(USARTx->CR1, USART_CR1_CMIE) == (USART_CR1_CMIE)) ? 1UL : 0UL);
4237 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RTO(USART_TypeDef *USARTx)
4239 return ((READ_BIT(USARTx->CR1, USART_CR1_RTOIE) == (USART_CR1_RTOIE)) ? 1UL : 0UL);
4250 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_EOB(USART_TypeDef *USARTx)
4252 return ((READ_BIT(USARTx->CR1, USART_CR1_EOBIE) == (USART_CR1_EOBIE)) ? 1UL : 0UL);
4255 #if defined(USART_CR1_FIFOEN) 4264 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFE(USART_TypeDef *USARTx)
4266 return ((READ_BIT(USARTx->CR1, USART_CR1_TXFEIE) == (USART_CR1_TXFEIE)) ? 1UL : 0UL);
4277 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFF(USART_TypeDef *USARTx)
4279 return ((READ_BIT(USARTx->CR1, USART_CR1_RXFFIE) == (USART_CR1_RXFFIE)) ? 1UL : 0UL);
4291 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_LBD(USART_TypeDef *USARTx)
4293 return ((READ_BIT(USARTx->CR2, USART_CR2_LBDIE) == (USART_CR2_LBDIE)) ? 1UL : 0UL);
4302 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_ERROR(USART_TypeDef *USARTx)
4304 return ((READ_BIT(USARTx->CR3, USART_CR3_EIE) == (USART_CR3_EIE)) ? 1UL : 0UL);
4315 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CTS(USART_TypeDef *USARTx)
4317 return ((READ_BIT(USARTx->CR3, USART_CR3_CTSIE) == (USART_CR3_CTSIE)) ? 1UL : 0UL);
4328 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_WKUP(USART_TypeDef *USARTx)
4330 return ((READ_BIT(USARTx->CR3, USART_CR3_WUFIE) == (USART_CR3_WUFIE)) ? 1UL : 0UL);
4333 #if defined(USART_CR1_FIFOEN) 4342 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFT(USART_TypeDef *USARTx)
4344 return ((READ_BIT(USARTx->CR3, USART_CR3_TXFTIE) == (USART_CR3_TXFTIE)) ? 1UL : 0UL);
4348 #if defined(USART_TCBGT_SUPPORT) 4358 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TCBGT(USART_TypeDef *USARTx)
4360 return ((READ_BIT(USARTx->CR3, USART_CR3_TCBGTIE) == (USART_CR3_TCBGTIE)) ? 1UL : 0UL);
4364 #if defined(USART_CR1_FIFOEN) 4373 __STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFT(USART_TypeDef *USARTx)
4375 return ((READ_BIT(USARTx->CR3, USART_CR3_RXFTIE) == (USART_CR3_RXFTIE)) ? 1UL : 0UL);
4393 __STATIC_INLINE
void LL_USART_EnableDMAReq_RX(USART_TypeDef *USARTx)
4395 SET_BIT(USARTx->CR3, USART_CR3_DMAR);
4404 __STATIC_INLINE
void LL_USART_DisableDMAReq_RX(USART_TypeDef *USARTx)
4415 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_RX(USART_TypeDef *USARTx)
4417 return ((READ_BIT(USARTx->CR3, USART_CR3_DMAR) == (USART_CR3_DMAR)) ? 1UL : 0UL);
4426 __STATIC_INLINE
void LL_USART_EnableDMAReq_TX(USART_TypeDef *USARTx)
4428 SET_BIT(USARTx->CR3, USART_CR3_DMAT);
4437 __STATIC_INLINE
void LL_USART_DisableDMAReq_TX(USART_TypeDef *USARTx)
4448 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMAReq_TX(USART_TypeDef *USARTx)
4450 return ((READ_BIT(USARTx->CR3, USART_CR3_DMAT) == (USART_CR3_DMAT)) ? 1UL : 0UL);
4459 __STATIC_INLINE
void LL_USART_EnableDMADeactOnRxErr(USART_TypeDef *USARTx)
4461 SET_BIT(USARTx->CR3, USART_CR3_DDRE);
4470 __STATIC_INLINE
void LL_USART_DisableDMADeactOnRxErr(USART_TypeDef *USARTx)
4481 __STATIC_INLINE uint32_t LL_USART_IsEnabledDMADeactOnRxErr(USART_TypeDef *USARTx)
4483 return ((READ_BIT(USARTx->CR3, USART_CR3_DDRE) == (USART_CR3_DDRE)) ? 1UL : 0UL);
4496 __STATIC_INLINE uint32_t LL_USART_DMA_GetRegAddr(USART_TypeDef *USARTx, uint32_t Direction)
4498 register uint32_t data_reg_addr;
4500 if (Direction == LL_USART_DMA_REG_DATA_TRANSMIT)
4503 data_reg_addr = (uint32_t) &(USARTx->TDR);
4508 data_reg_addr = (uint32_t) &(USARTx->RDR);
4511 return data_reg_addr;
4528 __STATIC_INLINE uint8_t LL_USART_ReceiveData8(USART_TypeDef *USARTx)
4530 return (uint8_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR) & 0xFFU);
4539 __STATIC_INLINE uint16_t LL_USART_ReceiveData9(USART_TypeDef *USARTx)
4541 return (uint16_t)(READ_BIT(USARTx->RDR, USART_RDR_RDR));
4551 __STATIC_INLINE
void LL_USART_TransmitData8(USART_TypeDef *USARTx, uint8_t Value)
4553 USARTx->TDR = Value;
4563 __STATIC_INLINE
void LL_USART_TransmitData9(USART_TypeDef *USARTx, uint16_t Value)
4565 USARTx->TDR = (uint16_t)(Value & 0x1FFUL);
4584 __STATIC_INLINE
void LL_USART_RequestAutoBaudRate(USART_TypeDef *USARTx)
4586 SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_ABRRQ);
4595 __STATIC_INLINE
void LL_USART_RequestBreakSending(USART_TypeDef *USARTx)
4597 SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_SBKRQ);
4606 __STATIC_INLINE
void LL_USART_RequestEnterMuteMode(USART_TypeDef *USARTx)
4608 SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_MMRQ);
4625 __STATIC_INLINE
void LL_USART_RequestRxDataFlush(USART_TypeDef *USARTx)
4627 SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_RXFRQ);
4642 __STATIC_INLINE
void LL_USART_RequestTxDataFlush(USART_TypeDef *USARTx)
4644 SET_BIT(USARTx->RQR, (uint16_t)USART_RQR_TXFRQ);
4651 #if defined(USE_FULL_LL_DRIVER) __STATIC_INLINE void LL_USART_DisableClockInStopMode(USART_TypeDef *USARTx)
USART clock disabled in STOP Mode.
__STATIC_INLINE void LL_USART_SetTXRXSwap(USART_TypeDef *USARTx, uint32_t SwapConfig)
Configure TX/RX pins swapping setting. CR2 SWAP LL_USART_SetTXRXSwap.
__STATIC_INLINE void LL_USART_SetDataWidth(USART_TypeDef *USARTx, uint32_t DataWidth)
Set Word length (i.e. nb of data bits, excluding start and stop bits) CR1 M0 LL_USART_SetDataWidth ...
__STATIC_INLINE void LL_USART_ConfigFIFOsThreshold(USART_TypeDef *USARTx, uint32_t TXThreshold, uint32_t RXThreshold)
Configure TX and RX FIFOs Threshold.
__STATIC_INLINE void LL_USART_SetBinaryDataLogic(USART_TypeDef *USARTx, uint32_t DataLogic)
Configure Binary data logic.
__STATIC_INLINE void LL_USART_DisableDirectionTx(USART_TypeDef *USARTx)
Transmitter Disable CR1 TE LL_USART_DisableDirectionTx.
LL USART Init Structure definition.
register uint32_t brrtemp
__STATIC_INLINE uint32_t LL_USART_GetNodeAddressLen(USART_TypeDef *USARTx)
Return Length of Node Address used in Address Detection mode (7-bit or 4-bit) CR2 ADDM7 LL_USART_Get...
__STATIC_INLINE uint32_t LL_USART_GetTransferDirection(USART_TypeDef *USARTx)
Return enabled/disabled states of Transmitter and Receiver CR1 RE LL_USART_GetTransferDirection CR1...
__STATIC_INLINE void LL_USART_EnableDirectionTx(USART_TypeDef *USARTx)
Transmitter Enable CR1 TE LL_USART_EnableDirectionTx.
__STATIC_INLINE void LL_USART_ConfigCharacter(USART_TypeDef *USARTx, uint32_t DataWidth, uint32_t Parity, uint32_t StopBits)
Configure Character frame format (Datawidth, Parity control, Stop Bits)
__STATIC_INLINE void LL_USART_ConfigNodeAddress(USART_TypeDef *USARTx, uint32_t AddressLen, uint32_t NodeAddress)
Set Address of the USART node.
__STATIC_INLINE uint32_t LL_USART_IsClockEnabledInStopMode(USART_TypeDef *USARTx)
Indicate if USART clock is enabled in STOP Mode CR3 UCESM LL_USART_IsClockEnabledInStopMode.
__STATIC_INLINE void LL_USART_SetWakeUpMethod(USART_TypeDef *USARTx, uint32_t Method)
Set Receiver Wake Up method from Mute mode. CR1 WAKE LL_USART_SetWakeUpMethod.
__STATIC_INLINE void LL_USART_SetTransferBitOrder(USART_TypeDef *USARTx, uint32_t BitOrder)
Configure transfer bit order (either Less or Most Significant Bit First)
__STATIC_INLINE void LL_USART_DisableAutoBaudRate(USART_TypeDef *USARTx)
Disable Auto Baud-Rate Detection.
__STATIC_INLINE uint32_t LL_USART_GetTXRXSwap(USART_TypeDef *USARTx)
Retrieve TX/RX pins swapping configuration. CR2 SWAP LL_USART_GetTXRXSwap.
__STATIC_INLINE void LL_USART_SetParity(USART_TypeDef *USARTx, uint32_t Parity)
Configure Parity (enabled/disabled and parity mode if enabled).
__STATIC_INLINE uint32_t LL_USART_GetPrescaler(USART_TypeDef *USARTx)
Retrieve the Clock source prescaler for baudrate generator and oversampling.
__STATIC_INLINE uint32_t LL_USART_GetClockPolarity(USART_TypeDef *USARTx)
Return polarity of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void LL_USART_SetPrescaler(USART_TypeDef *USARTx, uint32_t PrescalerValue)
Configure Clock source prescaler for baudrate generator and oversampling.
__STATIC_INLINE void LL_USART_EnableMuteMode(USART_TypeDef *USARTx)
Allow switch between Mute Mode and Active mode CR1 MME LL_USART_EnableMuteMode.
LL USART Clock Init Structure definition.
void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Set each field of a LL_USART_ClockInitTypeDef type structure to default value.
__STATIC_INLINE void uint32_t uint32_t OverSampling
__STATIC_INLINE uint32_t LL_USART_GetParity(USART_TypeDef *USARTx)
Return Parity configuration (enabled/disabled and parity mode if enabled) CR1 PS LL_USART_GetParity ...
__STATIC_INLINE void LL_USART_EnableAutoBaudRate(USART_TypeDef *USARTx)
Enable Auto Baud-Rate Detection.
__STATIC_INLINE uint32_t LL_USART_IsEnabledOverrunDetect(USART_TypeDef *USARTx)
Indicate if Overrun detection is enabled CR3 OVRDIS LL_USART_IsEnabledOverrunDetect.
__STATIC_INLINE uint32_t LL_USART_GetClockPhase(USART_TypeDef *USARTx)
Return phase of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE void uint32_t uint32_t uint32_t BaudRate
__STATIC_INLINE void LL_USART_EnableClockInStopMode(USART_TypeDef *USARTx)
USART Clock enabled in STOP Mode.
__STATIC_INLINE uint32_t LL_USART_GetWakeUpMethod(USART_TypeDef *USARTx)
Return Receiver Wake Up method from Mute mode CR1 WAKE LL_USART_GetWakeUpMethod. ...
__STATIC_INLINE void LL_USART_Disable(USART_TypeDef *USARTx)
USART Disable (all USART prescalers and outputs are disabled)
__STATIC_INLINE uint32_t LL_USART_GetDataWidth(USART_TypeDef *USARTx)
Return Word length (i.e. nb of data bits, excluding start and stop bits) CR1 M0 LL_USART_GetDataWidt...
__STATIC_INLINE uint32_t LL_USART_GetRXFIFOThreshold(USART_TypeDef *USARTx)
Return RX FIFO Threshold Configuration.
__STATIC_INLINE uint32_t LL_USART_IsEnabledOneBitSamp(USART_TypeDef *USARTx)
Indicate if One bit sampling method is enabled CR3 ONEBIT LL_USART_IsEnabledOneBitSamp.
void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct)
Set each LL_USART_InitTypeDef field to default value.
__STATIC_INLINE void LL_USART_DisableRxTimeout(USART_TypeDef *USARTx)
Disable Receiver Timeout CR2 RTOEN LL_USART_DisableRxTimeout.
register uint32_t periphclkpresc
__STATIC_INLINE void LL_USART_DisableMuteMode(USART_TypeDef *USARTx)
Prevent Mute Mode use. Set Receiver in active mode permanently. CR1 MME LL_USART_DisableMuteMode.
__STATIC_INLINE void LL_USART_SetWKUPType(USART_TypeDef *USARTx, uint32_t Type)
Select event type for Wake UP Interrupt Flag (WUS[1:0] bits)
__STATIC_INLINE void LL_USART_EnableSCLKOutput(USART_TypeDef *USARTx)
Enable Clock output on SCLK pin.
__STATIC_INLINE uint32_t LL_USART_IsEnabledSCLKOutput(USART_TypeDef *USARTx)
Indicate if Clock output on SCLK pin is enabled.
ErrorStatus LL_USART_ClockInit(USART_TypeDef *USARTx, LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Initialize USART Clock related settings according to the specified parameters in the USART_ClockInitS...
__STATIC_INLINE uint32_t LL_USART_GetWKUPType(USART_TypeDef *USARTx)
Return event type for Wake UP Interrupt Flag (WUS[1:0] bits)
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
register uint32_t brrresult
__STATIC_INLINE void uint32_t PeriphClk
__STATIC_INLINE void LL_USART_EnableDirectionRx(USART_TypeDef *USARTx)
Receiver Enable (Receiver is enabled and begins searching for a start bit) CR1 RE LL_USART_EnableDir...
__STATIC_INLINE void LL_USART_SetRXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod)
Configure RX pin active level logic CR2 RXINV LL_USART_SetRXPinLevel.
__STATIC_INLINE void LL_USART_ConfigClock(USART_TypeDef *USARTx, uint32_t Phase, uint32_t Polarity, uint32_t LBCPOutput)
Configure Clock signal format (Phase Polarity and choice about output of last bit clock pulse) ...
__STATIC_INLINE void LL_USART_EnableOneBitSamp(USART_TypeDef *USARTx)
Enable One bit sampling method CR3 ONEBIT LL_USART_EnableOneBitSamp.
__STATIC_INLINE void LL_USART_SetClockPhase(USART_TypeDef *USARTx, uint32_t ClockPhase)
Select the phase of the clock output on the SCLK pin in synchronous mode.
__STATIC_INLINE uint32_t LL_USART_GetOverSampling(USART_TypeDef *USARTx)
Return Oversampling mode CR1 OVER8 LL_USART_GetOverSampling.
uint32_t HardwareFlowControl
__STATIC_INLINE uint32_t LL_USART_GetNodeAddress(USART_TypeDef *USARTx)
Return 8 bit Address of the USART node as set in ADD field of CR2.
__STATIC_INLINE void LL_USART_EnableCTSHWFlowCtrl(USART_TypeDef *USARTx)
Enable CTS HW Flow Control.
__STATIC_INLINE void LL_USART_DisableSCLKOutput(USART_TypeDef *USARTx)
Disable Clock output on SCLK pin.
__STATIC_INLINE uint32_t LL_USART_IsEnabledAutoBaud(USART_TypeDef *USARTx)
Indicate if Auto Baud-Rate Detection mechanism is enabled.
__STATIC_INLINE void LL_USART_EnableRTSHWFlowCtrl(USART_TypeDef *USARTx)
Enable RTS HW Flow Control.
__STATIC_INLINE void LL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits)
Set the length of the stop bits CR2 STOP LL_USART_SetStopBitsLength.
__STATIC_INLINE void LL_USART_DisableOverrunDetect(USART_TypeDef *USARTx)
Disable Overrun detection CR3 OVRDIS LL_USART_DisableOverrunDetect.
__STATIC_INLINE uint32_t LL_USART_IsEnabled(USART_TypeDef *USARTx)
Indicate if USART is enabled CR1 UE LL_USART_IsEnabled.
__STATIC_INLINE void LL_USART_SetHWFlowCtrl(USART_TypeDef *USARTx, uint32_t HardwareFlowControl)
Configure HW Flow Control mode (both CTS and RTS)
__STATIC_INLINE void LL_USART_DisableOneBitSamp(USART_TypeDef *USARTx)
Disable One bit sampling method CR3 ONEBIT LL_USART_DisableOneBitSamp.
__STATIC_INLINE uint32_t LL_USART_GetTXFIFOThreshold(USART_TypeDef *USARTx)
Return TX FIFO Threshold Configuration.
__STATIC_INLINE void LL_USART_SetTransferDirection(USART_TypeDef *USARTx, uint32_t TransferDirection)
Configure simultaneously enabled/disabled states of Transmitter and Receiver CR1 RE LL_USART_SetTran...
ErrorStatus LL_USART_Init(USART_TypeDef *USARTx, LL_USART_InitTypeDef *USART_InitStruct)
Initialize USART registers according to the specified parameters in USART_InitStruct.
__STATIC_INLINE void LL_USART_SetRXFIFOThreshold(USART_TypeDef *USARTx, uint32_t Threshold)
Configure RX FIFO Threshold.
__STATIC_INLINE void LL_USART_EnableOverrunDetect(USART_TypeDef *USARTx)
Enable Overrun detection CR3 OVRDIS LL_USART_EnableOverrunDetect.
__STATIC_INLINE void LL_USART_DisableFIFO(USART_TypeDef *USARTx)
FIFO Mode Disable.
__STATIC_INLINE uint32_t LL_USART_IsEnabledInStopMode(USART_TypeDef *USARTx)
Indicate if USART is enabled in STOP Mode (able to wake up MCU from Stop mode or not) ...
__STATIC_INLINE void LL_USART_SetAutoBaudRateMode(USART_TypeDef *USARTx, uint32_t AutoBaudRateMode)
Set Auto Baud-Rate mode bits.
uint32_t LastBitClockPulse
__STATIC_INLINE void LL_USART_SetLastClkPulseOutput(USART_TypeDef *USARTx, uint32_t LastBitClockPulse)
Configure if Clock pulse of the last data bit is output to the SCLK pin or not.
__STATIC_INLINE void LL_USART_DisableInStopMode(USART_TypeDef *USARTx)
USART disabled in STOP Mode.
__STATIC_INLINE uint32_t LL_USART_IsEnabledRxTimeout(USART_TypeDef *USARTx)
Indicate if Receiver Timeout feature is enabled CR2 RTOEN LL_USART_IsEnabledRxTimeout.
__STATIC_INLINE uint32_t LL_USART_GetStopBitsLength(USART_TypeDef *USARTx)
Retrieve the length of the stop bits CR2 STOP LL_USART_GetStopBitsLength.
__STATIC_INLINE uint32_t LL_USART_GetLastClkPulseOutput(USART_TypeDef *USARTx)
Retrieve Clock pulse of the last data bit output configuration (Last bit Clock pulse output to the SC...
__STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t PrescalerValue, uint32_t OverSampling, uint32_t BaudRate) __STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx
Configure USART BRR register for achieving expected Baud Rate value.
__STATIC_INLINE uint32_t LL_USART_IsEnabledFIFO(USART_TypeDef *USARTx)
Indicate if FIFO Mode is enabled.
__STATIC_INLINE void LL_USART_SetTXPinLevel(USART_TypeDef *USARTx, uint32_t PinInvMethod)
Configure TX pin active level logic CR2 TXINV LL_USART_SetTXPinLevel.
__STATIC_INLINE uint32_t LL_USART_GetRXPinLevel(USART_TypeDef *USARTx)
Retrieve RX pin active level logic configuration CR2 RXINV LL_USART_GetRXPinLevel.
__STATIC_INLINE uint32_t LL_USART_GetTXPinLevel(USART_TypeDef *USARTx)
Retrieve TX pin active level logic configuration CR2 TXINV LL_USART_GetTXPinLevel.
__STATIC_INLINE void LL_USART_Enable(USART_TypeDef *USARTx)
USART Enable CR1 UE LL_USART_Enable.
__STATIC_INLINE uint32_t LL_USART_GetBinaryDataLogic(USART_TypeDef *USARTx)
Retrieve Binary data configuration CR2 DATAINV LL_USART_GetBinaryDataLogic.
static const uint32_t USART_PRESCALER_TAB[]
__STATIC_INLINE void LL_USART_EnableRxTimeout(USART_TypeDef *USARTx)
Enable Receiver Timeout CR2 RTOEN LL_USART_EnableRxTimeout.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__STATIC_INLINE void LL_USART_DisableCTSHWFlowCtrl(USART_TypeDef *USARTx)
Disable CTS HW Flow Control.
ErrorStatus LL_USART_DeInit(USART_TypeDef *USARTx)
De-initialize USART registers (Registers restored to their default values).
__STATIC_INLINE uint32_t LL_USART_GetHWFlowCtrl(USART_TypeDef *USARTx)
Return HW Flow Control configuration (both CTS and RTS)
__STATIC_INLINE uint32_t LL_USART_GetTransferBitOrder(USART_TypeDef *USARTx)
Return transfer bit order (either Less or Most Significant Bit First)
__STATIC_INLINE void LL_USART_SetClockPolarity(USART_TypeDef *USARTx, uint32_t ClockPolarity)
Select the polarity of the clock output on the SCLK pin in synchronous mode.
uint32_t TransferDirection
__STATIC_INLINE void LL_USART_DisableDirectionRx(USART_TypeDef *USARTx)
Receiver Disable CR1 RE LL_USART_DisableDirectionRx.
__STATIC_INLINE void LL_USART_SetTXFIFOThreshold(USART_TypeDef *USARTx, uint32_t Threshold)
Configure TX FIFO Threshold.
__STATIC_INLINE void LL_USART_DisableRTSHWFlowCtrl(USART_TypeDef *USARTx)
Disable RTS HW Flow Control.
__STATIC_INLINE void LL_USART_SetOverSampling(USART_TypeDef *USARTx, uint32_t OverSampling)
Set Oversampling to 8-bit or 16-bit mode CR1 OVER8 LL_USART_SetOverSampling.
__STATIC_INLINE uint32_t LL_USART_GetAutoBaudRateMode(USART_TypeDef *USARTx)
Return Auto Baud-Rate mode.
__STATIC_INLINE void LL_USART_EnableInStopMode(USART_TypeDef *USARTx)
USART enabled in STOP Mode.
__STATIC_INLINE uint32_t LL_USART_IsEnabledMuteMode(USART_TypeDef *USARTx)
Indicate if switch between Mute Mode and Active mode is allowed CR1 MME LL_USART_IsEnabledMuteMode.
__STATIC_INLINE void LL_USART_EnableFIFO(USART_TypeDef *USARTx)
FIFO Mode Enable.