mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

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

Revision:
489:119543c9f674
Parent:
382:ee426a420dbb
--- a/targets/cmsis/TARGET_STM/TARGET_STM32L0/stm32l0xx_hal_usart.h	Thu Mar 05 13:15:07 2015 +0000
+++ b/targets/cmsis/TARGET_STM/TARGET_STM32L0/stm32l0xx_hal_usart.h	Thu Mar 12 14:30:49 2015 +0000
@@ -2,13 +2,13 @@
   ******************************************************************************
   * @file    stm32l0xx_hal_usart.h
   * @author  MCD Application Team
-  * @version V1.1.0
-  * @date    18-June-2014
+  * @version V1.2.0
+  * @date    06-February-2015
   * @brief   Header file of USART HAL module.
   ******************************************************************************
   * @attention
   *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
   *
   * Redistribution and use in source and binary forms, with or without modification,
   * are permitted provided that the following conditions are met:
@@ -56,11 +56,21 @@
   * @{
   */
 
-/** @addtogroup USART
+/** @defgroup USART USART (Synchronous UART)
   * @{
   */ 
 
-/* Exported types ------------------------------------------------------------*/ 
+/******************************************************************************/
+/* Exported types ------------------------------------------------------------*/
+/******************************************************************************/
+
+   /** @defgroup USART_Exported_Types USART Exported Types
+  * @{
+  */
+
+/** @defgroup USART_Init_Configuration USART initialization configuration structure
+  * @{
+  */
 /** 
   * @brief USART Init Structure definition  
   */ 
@@ -97,6 +107,13 @@
                                            This parameter can be a value of @ref USART_Last_Bit */
 }USART_InitTypeDef;
 
+/**
+  * @}
+  */
+
+/** @defgroup USART_State_Definition  USART state definition
+  * @{
+  */
 /** 
   * @brief HAL State structures definition  
   */ 
@@ -111,20 +128,29 @@
   HAL_USART_STATE_TIMEOUT           = 0x03,    /*!< Timeout state */
   HAL_USART_STATE_ERROR             = 0x04     /*!< Error */      
 }HAL_USART_StateTypeDef;
-
+/**
+  * @}
+  */
+/** @defgroup USART_Error_Definition  USART error definition
+  * @{
+  */
 /** 
-  * @brief  HAL USART Error Code structure definition  
+  * @brief  HAL USART Error Code  definition
   */ 
-typedef enum
-{
-  HAL_USART_ERROR_NONE      = 0x00,    /*!< No error            */
-  HAL_USART_ERROR_PE        = 0x01,    /*!< Parity error        */
-  HAL_USART_ERROR_NE        = 0x02,    /*!< Noise error         */
-  HAL_USART_ERROR_FE        = 0x04,    /*!< frame error         */
-  HAL_USART_ERROR_ORE       = 0x08,    /*!< Overrun error       */
-  HAL_USART_ERROR_DMA       = 0x10     /*!< DMA transfer error  */
-}HAL_USART_ErrorTypeDef;
 
+#define   HAL_USART_ERROR_NONE      ((uint32_t)0x00)    /*!< No error            */
+#define   HAL_USART_ERROR_PE        ((uint32_t)0x01)    /*!< Parity error        */
+#define   HAL_USART_ERROR_NE        ((uint32_t)0x02)    /*!< Noise error         */
+#define   HAL_USART_ERROR_FE        ((uint32_t)0x04)    /*!< frame error         */
+#define   HAL_USART_ERROR_ORE       ((uint32_t)0x08)    /*!< Overrun error       */
+#define   HAL_USART_ERROR_DMA       ((uint32_t)0x10)    /*!< DMA transfer error  */
+
+/**
+  * @}
+  */
+/** @defgroup USART_Clock_SourceDefinition  USART clock source definition
+  * @{
+  */
 /** 
   * @brief  USART clock sources definitions
   */
@@ -136,15 +162,16 @@
   USART_CLOCKSOURCE_SYSCLK     = 0x04,    /*!< SYSCLK clock source */
   USART_CLOCKSOURCE_LSE        = 0x08     /*!< LSE clock source     */
 }USART_ClockSourceTypeDef;
-
-
-/** 
-  * @brief  HAL USART Error Code structure definition  
-  */ 
-
+/**
+  * @}
+  */
+/** @defgroup USART_handle_Definition  Handle structure definition
+  * @{
+  */
 /** 
   * @brief  USART handle Structure definition  
-  */  
+  */
+
 typedef struct
 {
   USART_TypeDef                 *Instance;        /*!<  USART registers base address        */
@@ -173,17 +200,22 @@
   
   __IO HAL_USART_StateTypeDef    State;           /*!<  Usart communication state           */
   
-  __IO HAL_USART_ErrorTypeDef    ErrorCode;       /*!<  USART Error code                    */
+  __IO uint32_t                  ErrorCode;       /*!<  USART Error code                    */
   
 }USART_HandleTypeDef;
-
+/**
+  * @}
+  */
+/**
+  * @}
+  */
 
 /* Exported constants --------------------------------------------------------*/
-/** @defgroup USART_Exported_Constants
+/** @defgroup USART_Exported_Constants USART Exported Constants
   * @{
   */
 
-/** @defgroup USART_Stop_Bits
+/** @defgroup USART_Stop_Bits USART stop bit definition
   * @{
   */
 #define USART_STOPBITS_1                     ((uint32_t)0x0000)
@@ -198,7 +230,7 @@
   * @}
   */ 
 
-/** @defgroup USART_Parity
+/** @defgroup USART_Parity USART parity definition
   * @{
   */ 
 #define USART_PARITY_NONE                    ((uint32_t)0x0000)
@@ -211,29 +243,31 @@
   * @}
   */ 
 
-/** @defgroup USART_Mode
+/** @defgroup USART_Mode USART mode definition
   * @{
   */ 
 #define USART_MODE_RX                        ((uint32_t)USART_CR1_RE)
 #define USART_MODE_TX                        ((uint32_t)USART_CR1_TE)
 #define USART_MODE_TX_RX                     ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
-#define IS_USART_MODE(MODE) ((((MODE) & (uint32_t)0xFFFFFFF3) == 0x00) && ((MODE) != (uint32_t)0x00))
+#define IS_USART_MODE(MODE)     (((MODE) == USART_MODE_RX) || \
+                                 ((MODE) == USART_MODE_TX) || \
+                                 ((MODE) == USART_MODE_TX_RX))
 /**
   * @}
   */
     
-/** @defgroup USART_Clock
+/** @defgroup USART_Clock USART clock activation definition
   * @{
   */ 
-#define USART_CLOCK_DISABLED                 ((uint32_t)0x0000)
-#define USART_CLOCK_ENABLED                  ((uint32_t)USART_CR2_CLKEN)
-#define IS_USART_CLOCK(CLOCK)      (((CLOCK) == USART_CLOCK_DISABLED) || \
-                                   ((CLOCK) == USART_CLOCK_ENABLED))
+#define USART_CLOCK_DISABLE                 ((uint32_t)0x0000)
+#define USART_CLOCK_ENABLE                  ((uint32_t)USART_CR2_CLKEN)
+#define IS_USART_CLOCK(CLOCK)      (((CLOCK) == USART_CLOCK_DISABLE) || \
+                                   ((CLOCK) == USART_CLOCK_ENABLE))
 /**
   * @}
   */ 
 
-/** @defgroup USART_Clock_Polarity
+/** @defgroup USART_Clock_Polarity USART polarity level definition
   * @{
   */
 #define USART_POLARITY_LOW                   ((uint32_t)0x0000)
@@ -243,7 +277,7 @@
   * @}
   */ 
 
-/** @defgroup USART_Clock_Phase
+/** @defgroup USART_Clock_Phase USART clock phase definition
   * @{
   */
 #define USART_PHASE_1EDGE                    ((uint32_t)0x0000)
@@ -253,7 +287,7 @@
   * @}
   */
 
-/** @defgroup USART_Last_Bit
+/** @defgroup USART_Last_Bit USART last bit activation definition
   * @{
   */
 #define USART_LASTBIT_DISABLE                ((uint32_t)0x0000)
@@ -265,7 +299,7 @@
   */
 
 
-/** @defgroup USART_Flags
+/** @defgroup USART_Flags USART flag definitions
   *        Elements values convention: 0xXXXX
   *           - 0xXXXX  : Flag mask in the ISR register
   * @{
@@ -288,7 +322,7 @@
   * @}
   */
 
-/** @defgroup USART_Interrupt_definition
+/** @defgroup USART_Interrupt_definition USART interrupt definition
   *        Elements values convention: 0000ZZZZ0XXYYYYYb
   *           - YYYYY  : Interrupt source position in the XX register (5bits)
   *           - XX  : Interrupt source register (2bits)
@@ -313,7 +347,7 @@
   * @}
   */
 
-/** @defgroup USART_IT_CLEAR_Flags
+/** @defgroup USART_IT_CLEAR_Flags USART interrupt clear flags definition
   * @{
   */
 #define USART_CLEAR_PEF                       USART_ICR_PECF            /*!< Parity Error Clear Flag */          
@@ -327,7 +361,7 @@
   * @}
   */ 
 
-/** @defgroup USART_Request_Parameters
+/** @defgroup USART_Request_Parameters USART request parameter definition
   * @{
   */
 #define USART_RXDATA_FLUSH_REQUEST        ((uint32_t)USART_RQR_RXFRQ)        /*!< Receive Data flush Request */ 
@@ -338,7 +372,7 @@
   * @}
   */
 
-/** @defgroup USART_Interruption_Mask
+/** @defgroup USART_Interruption_Mask USART interruption mask definition
   * @{
   */  
 #define USART_IT_MASK                             ((uint16_t)0x001F)  
@@ -353,16 +387,27 @@
     
 /* Exported macro ------------------------------------------------------------*/
 
-/** @defgroup USART_Exported_Macros
+/** @defgroup USART_Exported_Macros USART Exported Macros
   * @{
   */
 /** @brief Reset USART handle state
-  * @param  __HANDLE__: specifies the UART Handle.
+  * @param  __HANDLE__: specifies the USART Handle.
   *         The Handle Instance which can be USART1 or USART2.
   * @retval None
   */
 #define __HAL_USART_RESET_HANDLE_STATE(__HANDLE__)  ((__HANDLE__)->State = HAL_USART_STATE_RESET)
 
+/** @brief  Flush the USART Data registers
+  * @param  __HANDLE__: specifies the USART Handle.
+  */
+#define __HAL_USART_FLUSH_DRREGISTER(__HANDLE__)  \
+  do{                \
+      SET_BIT((__HANDLE__)->Instance->RQR, USART_RXDATA_FLUSH_REQUEST); \
+      SET_BIT((__HANDLE__)->Instance->RQR, USART_TXDATA_FLUSH_REQUEST); \
+    } while(0)
+
+
+
 /** @brief  Checks whether the specified USART flag is set or not.
   * @param  __HANDLE__: specifies the USART Handle which can be USART1 or USART2.
   * @param  __FLAG__: specifies the flag to check.
@@ -383,6 +428,55 @@
   */
 #define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
 
+/** @brief  Clears the specified USART pending flag.
+  * @param  __HANDLE__: specifies the USART Handle.
+  * @param  __FLAG__: specifies the flag to check.
+  *          This parameter can be any combination of the following values:
+  *            @arg USART_CLEAR_PEF
+  *            @arg USART_CLEAR_FEF
+  *            @arg USART_CLEAR_NEF
+  *            @arg USART_CLEAR_OREF
+  *            @arg USART_CLEAR_IDLEF
+  *            @arg USART_CLEAR_TCF
+  *            @arg USART_CLEAR_LBDF
+  *            @arg USART_CLEAR_CTSF
+  *            @arg USART_CLEAR_RTOF
+  *            @arg USART_CLEAR_EOBF
+  *            @arg USART_CLEAR_CMF
+  *            @arg USART_CLEAR_WUF
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = ~(__FLAG__))
+
+/** @brief  Clear the USART PE pending flag.
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_PEFLAG(__HANDLE__)   __HAL_USART_CLEAR_FLAG(__HANDLE__,USART_CLEAR_PEF)
+
+/** @brief  Clear the USART FE pending flag.
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_FEFLAG(__HANDLE__)   __HAL_USART_CLEAR_FLAG(__HANDLE__,USART_CLEAR_FEF)
+
+/** @brief  Clear the UART NE pending flag.
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_NEFLAG(__HANDLE__)  __HAL_USART_CLEAR_FLAG(__HANDLE__,USART_CLEAR_NEF)
+
+/** @brief  Clear the UART ORE pending flag.
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_OREFLAG(__HANDLE__)   __HAL_USART_CLEAR_FLAG(__HANDLE__,USART_CLEAR_OREF)
+
+/** @brief  Clear the UART IDLE pending flag.
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_USART_CLEAR_FLAG(__HANDLE__,USART_CLEAR_IDLEF)
 
 /** @brief  Enables the specified USART interrupt.
   * @param  __HANDLE__: specifies the USART Handle which can be USART1 or USART2.
@@ -476,7 +570,19 @@
   *
   * @retval None
   */ 
-#define __HAL_USART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__)) 
+#define __HAL_USART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
+
+/** @brief  Enables the USART one bit sample method
+  * @param  __HANDLE__: specifies the USART Handle.
+  * @retval None
+  */
+#define __HAL_USART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
+
+/** @brief  Disables the UART one bit sample method
+  * @param  __HANDLE__: specifies the UART Handle.
+  * @retval None
+  */
+#define __HAL_USART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
 
 /** @brief  Enable USART
   * @param  __HANDLE__: specifies the USART Handle.
@@ -505,17 +611,27 @@
   * @}
   */
       
-/* Include UART HAL Extension module */
+/* Include USART HAL Extension module */
 #include "stm32l0xx_hal_usart_ex.h"
 /* Exported functions --------------------------------------------------------*/
-
+/** @defgroup USART_Exported_Functions USART Exported Functions
+  * @{
+  */
 /* Initialization/de-initialization functions  ********************************/
+/** @defgroup USART_Exported_Functions_Group1 Initialization/de-initialization functions
+ *  @{
+ */
 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart);
 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart);
 void HAL_USART_MspInit(USART_HandleTypeDef *husart);
 void HAL_USART_MspDeInit(USART_HandleTypeDef *husart);
-void HAL_USART_SetConfig(USART_HandleTypeDef *husart);
+/**
+  * @}
+  */
 /* IO operation functions *****************************************************/
+/** @defgroup USART_Exported_Functions_Group2 IO operation functions
+ *  @{
+ */
 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout);
@@ -535,15 +651,25 @@
 void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart);
 void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart);
 void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart);
-
+/**
+  * @}
+  */
+/* IO operation functions *****************************************************/
+/** @defgroup USART_Exported_Functions_Group3 Peripheral State functions
+ *  @{
+ */
 /* Peripheral State functions  ************************************************/
 HAL_USART_StateTypeDef HAL_USART_GetState(USART_HandleTypeDef *husart);
 uint32_t               HAL_USART_GetError(USART_HandleTypeDef *husart);
-
+/**
+  * @}
+  */
+/**
+  * @}
+  */
 /**
   * @}
   */ 
-
 /**
   * @}
   */
@@ -555,3 +681,4 @@
 #endif /* __STM32L0xx_HAL_USART_H */
 
 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+