19 #if defined(USE_FULL_LL_DRIVER) 
   25 #ifdef  USE_FULL_ASSERT 
   26 #include "stm32_assert.h" 
   28 #define assert_param(expr) ((void)0U) 
   35 #if defined (USART1) || defined (USART2) || defined (USART3) || defined (USART6) || defined (UART4) || defined (UART5) || defined (UART7) || defined (UART8) || defined (UART9) || defined (UART10) 
   60 #define IS_LL_USART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) <= 12500000U) 
   63 #define IS_LL_USART_BRR_MIN(__VALUE__) ((__VALUE__) >= 16U) 
   65 #define IS_LL_USART_DIRECTION(__VALUE__) (((__VALUE__) == LL_USART_DIRECTION_NONE) \ 
   66                                           || ((__VALUE__) == LL_USART_DIRECTION_RX) \ 
   67                                           || ((__VALUE__) == LL_USART_DIRECTION_TX) \ 
   68                                           || ((__VALUE__) == LL_USART_DIRECTION_TX_RX)) 
   70 #define IS_LL_USART_PARITY(__VALUE__) (((__VALUE__) == LL_USART_PARITY_NONE) \ 
   71                                        || ((__VALUE__) == LL_USART_PARITY_EVEN) \ 
   72                                        || ((__VALUE__) == LL_USART_PARITY_ODD)) 
   74 #define IS_LL_USART_DATAWIDTH(__VALUE__) (((__VALUE__) == LL_USART_DATAWIDTH_8B) \ 
   75                                           || ((__VALUE__) == LL_USART_DATAWIDTH_9B)) 
   77 #define IS_LL_USART_OVERSAMPLING(__VALUE__) (((__VALUE__) == LL_USART_OVERSAMPLING_16) \ 
   78                                              || ((__VALUE__) == LL_USART_OVERSAMPLING_8)) 
   80 #define IS_LL_USART_LASTBITCLKOUTPUT(__VALUE__) (((__VALUE__) == LL_USART_LASTCLKPULSE_NO_OUTPUT) \ 
   81                                                  || ((__VALUE__) == LL_USART_LASTCLKPULSE_OUTPUT)) 
   83 #define IS_LL_USART_CLOCKPHASE(__VALUE__) (((__VALUE__) == LL_USART_PHASE_1EDGE) \ 
   84                                            || ((__VALUE__) == LL_USART_PHASE_2EDGE)) 
   86 #define IS_LL_USART_CLOCKPOLARITY(__VALUE__) (((__VALUE__) == LL_USART_POLARITY_LOW) \ 
   87                                               || ((__VALUE__) == LL_USART_POLARITY_HIGH)) 
   89 #define IS_LL_USART_CLOCKOUTPUT(__VALUE__) (((__VALUE__) == LL_USART_CLOCK_DISABLE) \ 
   90                                             || ((__VALUE__) == LL_USART_CLOCK_ENABLE)) 
   92 #define IS_LL_USART_STOPBITS(__VALUE__) (((__VALUE__) == LL_USART_STOPBITS_0_5) \ 
   93                                          || ((__VALUE__) == LL_USART_STOPBITS_1) \ 
   94                                          || ((__VALUE__) == LL_USART_STOPBITS_1_5) \ 
   95                                          || ((__VALUE__) == LL_USART_STOPBITS_2)) 
   97 #define IS_LL_USART_HWCONTROL(__VALUE__) (((__VALUE__) == LL_USART_HWCONTROL_NONE) \ 
   98                                           || ((__VALUE__) == LL_USART_HWCONTROL_RTS) \ 
   99                                           || ((__VALUE__) == LL_USART_HWCONTROL_CTS) \ 
  100                                           || ((__VALUE__) == LL_USART_HWCONTROL_RTS_CTS)) 
  126   ErrorStatus status = SUCCESS;
 
  129   assert_param(IS_UART_INSTANCE(USARTx));
 
  131   if (USARTx == USART1)
 
  139   else if (USARTx == USART2)
 
  148   else if (USARTx == USART3)
 
  158   else if (USARTx == USART6)
 
  168   else if (USARTx == UART4)
 
  178   else if (USARTx == UART5)
 
  188   else if (USARTx == UART7)
 
  198   else if (USARTx == UART8)
 
  208   else if (USARTx == UART9)
 
  218   else if (USARTx == UART10)
 
  250   ErrorStatus status = ERROR;
 
  251   uint32_t periphclk = LL_RCC_PERIPH_FREQUENCY_NO;
 
  255   assert_param(IS_UART_INSTANCE(USARTx));
 
  256   assert_param(IS_LL_USART_BAUDRATE(USART_InitStruct->
BaudRate));
 
  257   assert_param(IS_LL_USART_DATAWIDTH(USART_InitStruct->
DataWidth));
 
  258   assert_param(IS_LL_USART_STOPBITS(USART_InitStruct->
StopBits));
 
  259   assert_param(IS_LL_USART_PARITY(USART_InitStruct->
Parity));
 
  262   assert_param(IS_LL_USART_OVERSAMPLING(USART_InitStruct->
OverSampling));
 
  275     MODIFY_REG(USARTx->CR1,
 
  276                (USART_CR1_M | USART_CR1_PCE | USART_CR1_PS |
 
  277                 USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8),
 
  298     if (USARTx == USART1)
 
  302     else if (USARTx == USART2)
 
  307     else if (USARTx == USART3)
 
  313     else if (USARTx == USART6)
 
  319     else if (USARTx == UART4)
 
  325     else if (USARTx == UART5)
 
  331     else if (USARTx == UART7)
 
  337     else if (USARTx == UART8)
 
  343     else if (USARTx == UART9)
 
  349     else if (USARTx == UART10)
 
  363     if ((periphclk != LL_RCC_PERIPH_FREQUENCY_NO)
 
  364         && (USART_InitStruct->
BaudRate != 0U))
 
  373       assert_param(IS_LL_USART_BRR_MIN(USARTx->BRR));
 
  392   USART_InitStruct->
DataWidth           = LL_USART_DATAWIDTH_8B;
 
  393   USART_InitStruct->
StopBits            = LL_USART_STOPBITS_1;
 
  394   USART_InitStruct->
Parity              = LL_USART_PARITY_NONE ;
 
  397   USART_InitStruct->
OverSampling        = LL_USART_OVERSAMPLING_16;
 
  414   ErrorStatus status = SUCCESS;
 
  417   assert_param(IS_UART_INSTANCE(USARTx));
 
  418   assert_param(IS_LL_USART_CLOCKOUTPUT(USART_ClockInitStruct->
ClockOutput));
 
  426     if (USART_ClockInitStruct->
ClockOutput == LL_USART_CLOCK_DISABLE)
 
  436       assert_param(IS_USART_INSTANCE(USARTx));
 
  439       assert_param(IS_LL_USART_CLOCKPOLARITY(USART_ClockInitStruct->
ClockPolarity));
 
  440       assert_param(IS_LL_USART_CLOCKPHASE(USART_ClockInitStruct->
ClockPhase));
 
  441       assert_param(IS_LL_USART_LASTBITCLKOUTPUT(USART_ClockInitStruct->
LastBitClockPulse));
 
  450       MODIFY_REG(USARTx->CR2,
 
  451                  USART_CR2_CLKEN | USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_LBCL,
 
  474   USART_ClockInitStruct->
ClockOutput       = LL_USART_CLOCK_DISABLE;
 
  475   USART_ClockInitStruct->
ClockPolarity     = LL_USART_POLARITY_LOW;            
 
  476   USART_ClockInitStruct->
ClockPhase        = LL_USART_PHASE_1EDGE;             
 
__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
Force APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset  APB1RSTR TIM3RST LL_A...
 
__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
Release APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset  APB1RSTR TIM3RST ...
 
__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
Release APB2 peripherals reset. @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset  APB2RSTR TIM8RST ...
 
__STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
Force APB2 peripherals reset. @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset  APB2RSTR TIM8RST LL_A...
 
RCC Clocks Frequency Structure.
 
void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks)
Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks.
 
__STATIC_INLINE void LL_USART_SetBaudRate(USART_TypeDef *USARTx, uint32_t PeriphClk, uint32_t OverSampling, uint32_t BaudRate)
Configure USART BRR register for achieving expected Baud Rate value.
 
__STATIC_INLINE void LL_USART_DisableSCLKOutput(USART_TypeDef *USARTx)
Disable Clock output on SCLK pin.
 
__STATIC_INLINE void LL_USART_SetStopBitsLength(USART_TypeDef *USARTx, uint32_t StopBits)
Set the length of the stop bits @rmtoll CR2 STOP LL_USART_SetStopBitsLength.
 
__STATIC_INLINE uint32_t LL_USART_IsEnabled(const USART_TypeDef *USARTx)
Indicate if USART is enabled @rmtoll 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)
 
void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct)
Set each LL_USART_InitTypeDef field to default value.
 
void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Set each field of a LL_USART_ClockInitTypeDef type structure to default value.
 
ErrorStatus LL_USART_ClockInit(USART_TypeDef *USARTx, const LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
Initialize USART Clock related settings according to the specified parameters in the USART_ClockInitS...
 
ErrorStatus LL_USART_Init(USART_TypeDef *USARTx, const LL_USART_InitTypeDef *USART_InitStruct)
Initialize USART registers according to the specified parameters in USART_InitStruct.
 
ErrorStatus LL_USART_DeInit(const USART_TypeDef *USARTx)
De-initialize USART registers (Registers restored to their default values).
 
uint32_t HardwareFlowControl
 
uint32_t TransferDirection
 
uint32_t LastBitClockPulse
 
LL USART Clock Init Structure definition.
 
LL USART Init Structure definition.
 
Header file of BUS LL module.
 
Header file of RCC LL module.
 
Header file of USART LL module.