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

Fork of mbed by mbed official

Revision:
92:4fc01daae5a5
Parent:
84:0b3ab51c8877
Child:
96:487b796308b0
--- a/TARGET_NUCLEO_L053R8/stm32l0xx_hal_uart.h	Wed Oct 29 11:02:04 2014 +0000
+++ b/TARGET_NUCLEO_L053R8/stm32l0xx_hal_uart.h	Thu Nov 27 13:33:22 2014 +0000
@@ -2,8 +2,8 @@
   ******************************************************************************
   * @file    stm32l0xx_hal_uart.h
   * @author  MCD Application Team
-  * @version V1.0.0
-  * @date    22-April-2014
+  * @version V1.1.0
+  * @date    18-June-2014
   * @brief   Header file of UART HAL module.
   ******************************************************************************
   * @attention
@@ -71,7 +71,7 @@
                                               Baud Rate Register[2:0] =  (((2 * PCLKx) / ((huart->Init.BaudRate)))[3:0]) >> 1      */
 
   uint32_t WordLength;                /*!< Specifies the number of data bits transmitted or received in a frame.
-                                           This parameter can be a value of @ref UART_Word_Length */
+                                           This parameter can be a value of @ref UARTEx_Word_Length */
 
   uint32_t StopBits;                  /*!< Specifies the number of stop bits transmitted.
                                            This parameter can be a value of @ref UART_Stop_Bits */
@@ -95,7 +95,7 @@
                                            
   uint32_t OneBitSampling;            /*!< Specifies wether a single sample or three samples' majority vote is selected.
                                            Selecting the single sample method increases the receiver tolerance to clock
-                                           deviations. This parameter can be a value of @ref UART_OneBit_Sampling. */                                                 
+                                           deviations. This parameter can be a value of @ref UART_OneBit_Sampling */                                                 
 }UART_InitTypeDef;
 
 /** 
@@ -131,7 +131,7 @@
                                        
   uint32_t AutoBaudRateMode;      /*!< If auto Baud rate detection is enabled, specifies how the rate 
                                        detection is carried out.     
-                                       This parameter can be a value of @ref UART_AutoBaud_Rate_Mode */ 
+                                       This parameter can be a value of @ref UARTEx_AutoBaud_Rate_Mode */ 
                                     
   uint32_t MSBFirst;              /*!< Specifies whether MSB is sent first on UART line.      
                                        This parameter can be a value of @ref UART_MSB_First */
@@ -220,7 +220,7 @@
   * @{
   */
 
-/** @defgroup UART_Stop_Bits   UART Number of Stop Bits
+/** @defgroup UART_Stop_Bits
   * @{
   */
 #define UART_STOPBITS_1                     ((uint32_t)0x0000)
@@ -231,7 +231,7 @@
   * @}
   */ 
 
-/** @defgroup UART_Parity  UART Parity
+/** @defgroup UART_Parity
   * @{
   */ 
 #define UART_PARITY_NONE                    ((uint32_t)0x0000)
@@ -244,7 +244,7 @@
   * @}
   */ 
 
-/** @defgroup UART_Hardware_Flow_Control UART Hardware Flow Control
+/** @defgroup UART_Hardware_Flow_Control
   * @{
   */ 
 #define UART_HWCONTROL_NONE                  ((uint32_t)0x0000)
@@ -260,7 +260,7 @@
   * @}
   */
 
-/** @defgroup UART_Mode UART Transfer Mode
+/** @defgroup UART_Mode
   * @{
   */ 
 #define UART_MODE_RX                        ((uint32_t)USART_CR1_RE)
@@ -271,7 +271,7 @@
   * @}
   */
     
- /** @defgroup UART_State  UART State
+ /** @defgroup UART_State
   * @{
   */ 
 #define UART_STATE_DISABLE                  ((uint32_t)0x0000)
@@ -282,7 +282,7 @@
   * @}
   */
 
-/** @defgroup UART_Over_Sampling UART Over Sampling
+/** @defgroup UART_Over_Sampling
   * @{
   */
 #define UART_OVERSAMPLING_16                    ((uint32_t)0x0000)
@@ -293,7 +293,7 @@
   * @}
   */ 
 
-/** @defgroup UART_OneBit_Sampling UART One Bit Sampling Method
+/** @defgroup UART_OneBit_Sampling
   * @{
   */
 #define UART_ONEBIT_SAMPLING_DISABLED   ((uint32_t)0x0000)
@@ -305,7 +305,7 @@
   */  
   
 
-/** @defgroup UART_Receiver_TimeOut UART Receiver TimeOut 
+/** @defgroup UART_Receiver_TimeOut
   * @{
   */
 #define UART_RECEIVER_TIMEOUT_DISABLE   ((uint32_t)0x00000000)
@@ -316,7 +316,7 @@
   * @}
   */ 
 
-/** @defgroup UART_LIN    UART Local Interconnection Network mode
+/** @defgroup UART_LIN
   * @{
   */
 #define UART_LIN_DISABLE            ((uint32_t)0x00000000)
@@ -327,7 +327,7 @@
   * @}
   */ 
   
-/** @defgroup UART_LIN_Break_Detection  UART LIN Break Detection
+/** @defgroup UART_LIN_Break_Detection
   * @{
   */
 #define UART_LINBREAKDETECTLENGTH_10B            ((uint32_t)0x00000000)
@@ -340,7 +340,7 @@
   
  
 
-/** @defgroup UART_One_Bit     UART One Bit sampling
+/** @defgroup UART_One_Bit
   * @{
   */
 #define UART_ONE_BIT_SAMPLE_DISABLED          ((uint32_t)0x00000000)
@@ -351,7 +351,7 @@
   * @}
   */  
   
-/** @defgroup UART_DMA_Tx    UART DMA Tx
+/** @defgroup UART_DMA_Tx
   * @{
   */
 #define UART_DMA_TX_DISABLE          ((uint32_t)0x00000000)
@@ -362,7 +362,7 @@
   * @}
   */
 
-/** @defgroup UART_DMA_Rx   UART DMA Rx
+/** @defgroup UART_DMA_Rx
   * @{
   */
 #define UART_DMA_RX_DISABLE           ((uint32_t)0x0000)
@@ -373,7 +373,7 @@
   * @}
   */
 
-/** @defgroup UART_Half_Duplex_Selection  UART Half Duplex Selection
+/** @defgroup UART_Half_Duplex_Selection
   * @{
   */
 #define UART_HALF_DUPLEX_DISABLE          ((uint32_t)0x0000)
@@ -384,7 +384,7 @@
   * @}
   */
 
-/** @defgroup UART_Flags     UART Status Flags
+/** @defgroup UART_Flags
   *        Elements values convention: 0xXXXX
   *           - 0xXXXX  : Flag mask in the ISR register
   * @{
@@ -415,7 +415,7 @@
   * @}
   */ 
 
-/** @defgroup UART_Interrupt_definition   UART Interrupts Definition
+/** @defgroup UART_Interrupt_definition
   *        Elements values convention: 0000ZZZZ0XXYYYYYb
   *           - YYYYY  : Interrupt source position in the XX register (5bits)
   *           - XX  : Interrupt source register (2bits)
@@ -454,7 +454,7 @@
   * @}
   */
 
-/** @defgroup UART_IT_CLEAR_Flags  UART Interruption Clear Flags
+/** @defgroup UART_IT_CLEAR_Flags
   * @{
   */
 #define UART_CLEAR_PEF                       USART_ICR_PECF            /*!< Parity Error Clear Flag */          
@@ -473,7 +473,7 @@
   * @}
   */
 
-/** @defgroup UART_Request_Parameters UART Request Parameters
+/** @defgroup UART_Request_Parameters
   * @{
   */
 #define UART_AUTOBAUD_REQUEST            ((uint32_t)USART_RQR_ABRRQ)        /*!< Auto-Baud Rate Request */     
@@ -490,7 +490,7 @@
   * @}
   */
 
-/** @defgroup UART_Advanced_Features_Initialization_Type  UART Advanced Feature Initialization Type
+/** @defgroup UART_Advanced_Features_Initialization_Type
   * @{
   */
 #define UART_ADVFEATURE_NO_INIT                 ((uint32_t)0x00000000)
@@ -515,7 +515,7 @@
   * @}
   */
 
-/** @defgroup UART_Tx_Inv UART Advanced Feature TX Pin Active Level Inversion
+/** @defgroup UART_Tx_Inv
   * @{
   */
 #define UART_ADVFEATURE_TXINV_DISABLE   ((uint32_t)0x00000000)
@@ -526,7 +526,7 @@
   * @}
   */
 
-/** @defgroup UART_Rx_Inv UART Advanced Feature RX Pin Active Level Inversion
+/** @defgroup UART_Rx_Inv
   * @{
   */
 #define UART_ADVFEATURE_RXINV_DISABLE   ((uint32_t)0x00000000)
@@ -537,7 +537,7 @@
   * @}
   */
 
-/** @defgroup UART_Data_Inv  UART Advanced Feature Binary Data Inversion
+/** @defgroup UART_Data_Inv
   * @{
   */
 #define UART_ADVFEATURE_DATAINV_DISABLE     ((uint32_t)0x00000000)
@@ -548,7 +548,7 @@
   * @}
   */
 
-/** @defgroup UART_Rx_Tx_Swap UART Advanced Feature RX TX Pins Swap
+/** @defgroup UART_Rx_Tx_Swap
   * @{
   */
 #define UART_ADVFEATURE_SWAP_DISABLE   ((uint32_t)0x00000000)
@@ -559,7 +559,7 @@
   * @}
   */
 
-/** @defgroup UART_Overrun_Disable  UART Advanced Feature Overrun Disable
+/** @defgroup UART_Overrun_Disable
   * @{
   */
 #define UART_ADVFEATURE_OVERRUN_ENABLE   ((uint32_t)0x00000000)
@@ -570,7 +570,7 @@
   * @}
   */
 
-/** @defgroup UART_AutoBaudRate_Enable  UART Advanced Feature Auto BaudRate Enable
+/** @defgroup UART_AutoBaudRate_Enable
   * @{
   */
 #define UART_ADVFEATURE_AUTOBAUDRATE_DISABLE           ((uint32_t)0x00000000)
@@ -581,7 +581,7 @@
   * @}
   */
 
-/** @defgroup UART_DMA_Disable_on_Rx_Error   UART Advanced Feature DMA Disable On Rx Error
+/** @defgroup UART_DMA_Disable_on_Rx_Error
   * @{
   */
 #define UART_ADVFEATURE_DMA_ENABLEONRXERROR       ((uint32_t)0x00000000)
@@ -592,7 +592,7 @@
   * @}
   */
 
-/** @defgroup UART_MSB_First   UART Advanced Feature MSB First
+/** @defgroup UART_MSB_First
   * @{
   */
 #define UART_ADVFEATURE_MSBFIRST_DISABLE      ((uint32_t)0x00000000)
@@ -603,7 +603,7 @@
   * @}
   */
 
-/** @defgroup UART_Stop_Mode_Enable   UART Advanced Feature Stop Mode Enable
+/** @defgroup UART_Stop_Mode_Enable
   * @{
   */
 #define UART_ADVFEATURE_STOPMODE_DISABLE      ((uint32_t)0x00000000)
@@ -614,7 +614,7 @@
   * @}
   */
 
-/** @defgroup UART_Mute_Mode   UART Advanced Feature Mute Mode Enable
+/** @defgroup UART_Mute_Mode
   * @{
   */
 #define UART_ADVFEATURE_MUTEMODE_DISABLE    ((uint32_t)0x00000000)
@@ -625,7 +625,7 @@
   * @}
   */
 
-/** @defgroup UART_CR2_ADDRESS_LSB_POS    UART Address-matching LSB Position In CR2 Register
+/** @defgroup UART_CR2_ADDRESS_LSBPOS
   * @{
   */
 #define UART_CR2_ADDRESS_LSB_POS            ((uint32_t) 24)
@@ -633,7 +633,7 @@
   * @}
   */
 
-/** @defgroup UART_WakeUp_from_Stop_Selection   UART WakeUp From Stop Selection
+/** @defgroup UART_WakeUp_from_Stop_Selection
   * @{
   */
 #define UART_WAKEUP_ON_ADDRESS           ((uint32_t)0x0000)
@@ -646,7 +646,7 @@
   * @}
   */
 
-/** @defgroup UART_DriverEnable_Polarity      UART DriverEnable Polarity
+/** @defgroup UART_DriverEnable_Polarity
   * @{
   */
 #define UART_DE_POLARITY_HIGH            ((uint32_t)0x00000000)
@@ -657,7 +657,7 @@
   * @}
   */
 
-/** @defgroup UART_CR1_DEAT_ADDRESS_LSB_POS    UART Driver Enable Assertion Time LSB Position In CR1 Register
+/** @defgroup UART_CR1_DEAT_ADDRESS_LSBPOS
   * @{
   */
 #define UART_CR1_DEAT_ADDRESS_LSB_POS            ((uint32_t) 21)
@@ -665,7 +665,7 @@
   * @}
   */
 
-/** @defgroup UART_CR1_DEDT_ADDRESS_LSB_POS    UART Driver Enable DeAssertion Time LSB Position In CR1 Register
+/** @defgroup UART_CR1_DEDT_ADDRESS_LSBPOS
   * @{
   */
 #define UART_CR1_DEDT_ADDRESS_LSB_POS            ((uint32_t) 16)
@@ -673,7 +673,7 @@
   * @}
   */
 
-/** @defgroup UART_Interruption_Mask    UART Interruptions Flag Mask
+/** @defgroup UART_Interruption_Mask
   * @{
   */
 #define UART_IT_MASK                             ((uint32_t)0x001F)
@@ -830,7 +830,7 @@
   *            @arg UART_CLEAR_WUF:  Wake Up from stop mode Clear Flag
   * @retval None
   */
-#define __HAL_UART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR |= (uint32_t)(__IT_CLEAR__))
+#define __HAL_UART_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
 
 /** @brief  Set a specific UART request flag.
   * @param  __HANDLE__: specifies the UART Handle.
@@ -860,6 +860,83 @@
   */
 #define __HAL_UART_DISABLE(__HANDLE__)                  ((__HANDLE__)->Instance->CR1 &=  ~USART_CR1_UE)
 
+/** @brief  Enable CTS flow control 
+  *         This macro allows to enable CTS hardware flow control for a given UART instance, 
+  *         without need to call HAL_UART_Init() function.
+  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
+  * @note   As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
+  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
+  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
+  *           - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
+  *             and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)).                                                                                                                  
+  * @param  __HANDLE__: specifies the UART Handle.
+  *         The Handle Instance can be USART1, USART2 or LPUART.
+  * @retval None
+  */
+#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__)        \
+  do{                                                      \
+    SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE);  \
+    (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE;        \
+  } while(0)
+
+/** @brief  Disable CTS flow control 
+  *         This macro allows to disable CTS hardware flow control for a given UART instance, 
+  *         without need to call HAL_UART_Init() function.
+  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
+  * @note   As macro is expected to be used for modifying CTS Hw flow control feature activation, without need
+  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
+  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
+  *           - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
+  *             and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)). 
+  * @param  __HANDLE__: specifies the UART Handle.
+  *         The Handle Instance can be USART1, USART2 or LPUART.
+  * @retval None
+  */
+#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__)        \
+  do{                                                       \
+    CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
+    (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE);      \
+  } while(0)
+
+/** @brief  Enable RTS flow control 
+  *         This macro allows to enable RTS hardware flow control for a given UART instance, 
+  *         without need to call HAL_UART_Init() function.
+  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
+  * @note   As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
+  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
+  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
+  *           - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
+  *             and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)). 
+  * @param  __HANDLE__: specifies the UART Handle.
+  *         The Handle Instance can be USART1, USART2 or LPUART.
+  * @retval None
+  */
+#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__)       \
+  do{                                                     \
+    SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
+    (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE;       \
+  } while(0)
+
+/** @brief  Disable RTS flow control 
+  *         This macro allows to disable RTS hardware flow control for a given UART instance, 
+  *         without need to call HAL_UART_Init() function.
+  *         As involving direct access to UART registers, usage of this macro should be fully endorsed by user.
+  * @note   As macro is expected to be used for modifying RTS Hw flow control feature activation, without need
+  *         for USART instance Deinit/Init, following conditions for macro call should be fulfilled :
+  *           - UART instance should have already been initialised (through call of HAL_UART_Init() )
+  *           - macro could only be called when corresponding UART instance is disabled (i.e __HAL_UART_DISABLE(__HANDLE__))
+  *             and should be followed by an Enable macro (i.e __HAL_UART_ENABLE(__HANDLE__)). 
+  * @param  __HANDLE__: specifies the UART Handle.
+  *         The Handle Instance can be USART1, USART2 or LPUART.
+  * @retval None
+  */
+#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__)       \
+  do{                                                      \
+    CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
+    (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE);     \
+  } while(0)
+
+
 /** @brief  BRR division operation to set BRR register with LPUART
   * @param  _PCLK_: LPUART clock
   * @param  _BAUD_: Baud rate set by the user
@@ -944,7 +1021,6 @@
 void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart);
 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
 void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart);
-void HAL_UART_WakeupCallback(UART_HandleTypeDef *huart);
 
 /* Peripheral Control and State functions  ************************************/
 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart);