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.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_irda.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
mbed_official 376:cb4d9db17537 7 * @brief Header file of IRDA HAL module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 489:119543c9f674 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0xx_HAL_IRDA_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0xx_HAL_IRDA_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 489:119543c9f674 53 /** @defgroup IRDA IRDA
mbed_official 376:cb4d9db17537 54 * @{
mbed_official 376:cb4d9db17537 55 */
mbed_official 376:cb4d9db17537 56
mbed_official 376:cb4d9db17537 57 /* Exported types ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 58
mbed_official 376:cb4d9db17537 59 /**
mbed_official 376:cb4d9db17537 60 * @brief IRDA Init Structure definition
mbed_official 376:cb4d9db17537 61 */
mbed_official 376:cb4d9db17537 62 typedef struct
mbed_official 376:cb4d9db17537 63 {
mbed_official 376:cb4d9db17537 64 uint32_t BaudRate; /*!< This member configures the IRDA communication baud rate.
mbed_official 376:cb4d9db17537 65 The baud rate register is computed using the following formula:
mbed_official 376:cb4d9db17537 66 Baud Rate Register = ((PCLKx) / ((hirda->Init.BaudRate))) */
mbed_official 376:cb4d9db17537 67
mbed_official 376:cb4d9db17537 68 uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
mbed_official 376:cb4d9db17537 69 This parameter can be a value of @ref IRDAEx_Word_Length */
mbed_official 376:cb4d9db17537 70
mbed_official 376:cb4d9db17537 71 uint32_t Parity; /*!< Specifies the parity mode.
mbed_official 376:cb4d9db17537 72 This parameter can be a value of @ref IRDA_Parity
mbed_official 376:cb4d9db17537 73 @note When parity is enabled, the computed parity is inserted
mbed_official 376:cb4d9db17537 74 at the MSB position of the transmitted data (9th bit when
mbed_official 376:cb4d9db17537 75 the word length is set to 9 data bits; 8th bit when the
mbed_official 376:cb4d9db17537 76 word length is set to 8 data bits). */
mbed_official 376:cb4d9db17537 77
mbed_official 376:cb4d9db17537 78 uint16_t Mode; /*!< Specifies wether the Receive or Transmit mode is enabled or disabled.
mbed_official 376:cb4d9db17537 79 This parameter can be a value of @ref IRDA_Mode */
mbed_official 376:cb4d9db17537 80
mbed_official 376:cb4d9db17537 81 uint8_t Prescaler; /*!< Specifies the Prescaler value for dividing the UART/USART source clock
mbed_official 376:cb4d9db17537 82 to achieve low-power frequency.
mbed_official 376:cb4d9db17537 83 @note Prescaler value 0 is forbidden */
mbed_official 376:cb4d9db17537 84
mbed_official 376:cb4d9db17537 85 uint16_t PowerMode; /*!< Specifies the IRDA power mode.
mbed_official 376:cb4d9db17537 86 This parameter can be a value of @ref IRDA_Low_Power */
mbed_official 376:cb4d9db17537 87 }IRDA_InitTypeDef;
mbed_official 376:cb4d9db17537 88
mbed_official 376:cb4d9db17537 89 /**
mbed_official 376:cb4d9db17537 90 * @brief HAL IRDA State structures definition
mbed_official 376:cb4d9db17537 91 */
mbed_official 376:cb4d9db17537 92 typedef enum
mbed_official 376:cb4d9db17537 93 {
mbed_official 376:cb4d9db17537 94 HAL_IRDA_STATE_RESET = 0x00, /*!< Peripheral is not yet Initialized */
mbed_official 376:cb4d9db17537 95 HAL_IRDA_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 376:cb4d9db17537 96 HAL_IRDA_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 376:cb4d9db17537 97 HAL_IRDA_STATE_BUSY_TX = 0x12, /*!< Data Transmission process is ongoing */
mbed_official 376:cb4d9db17537 98 HAL_IRDA_STATE_BUSY_RX = 0x22, /*!< Data Reception process is ongoing */
mbed_official 376:cb4d9db17537 99 HAL_IRDA_STATE_BUSY_TX_RX = 0x32, /*!< Data Transmission and Reception process is ongoing */
mbed_official 376:cb4d9db17537 100 HAL_IRDA_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 376:cb4d9db17537 101 HAL_IRDA_STATE_ERROR = 0x04 /*!< Error */
mbed_official 376:cb4d9db17537 102 }HAL_IRDA_StateTypeDef;
mbed_official 376:cb4d9db17537 103
mbed_official 376:cb4d9db17537 104 /**
mbed_official 489:119543c9f674 105 * @brief HAL IRDA Error Code definition
mbed_official 376:cb4d9db17537 106 */
mbed_official 489:119543c9f674 107
mbed_official 489:119543c9f674 108 #define HAL_IRDA_ERROR_NONE ((uint32_t)0x00) /*!< No error */
mbed_official 489:119543c9f674 109 #define HAL_IRDA_ERROR_PE ((uint32_t)0x01) /*!< Parity error */
mbed_official 489:119543c9f674 110 #define HAL_IRDA_ERROR_NE ((uint32_t)0x02) /*!< Noise error */
mbed_official 489:119543c9f674 111 #define HAL_IRDA_ERROR_FE ((uint32_t)0x04) /*!< frame error */
mbed_official 489:119543c9f674 112 #define HAL_IRDA_ERROR_ORE ((uint32_t)0x08) /*!< Overrun error */
mbed_official 489:119543c9f674 113 #define HAL_IRDA_ERROR_DMA ((uint32_t)0x10) /*!< DMA transfer error */
mbed_official 376:cb4d9db17537 114
mbed_official 376:cb4d9db17537 115 /**
mbed_official 376:cb4d9db17537 116 * @brief IRDA clock sources definition
mbed_official 376:cb4d9db17537 117 */
mbed_official 376:cb4d9db17537 118 typedef enum
mbed_official 376:cb4d9db17537 119 {
mbed_official 376:cb4d9db17537 120 IRDA_CLOCKSOURCE_PCLK1 = 0x00, /*!< PCLK1 clock source */
mbed_official 376:cb4d9db17537 121 IRDA_CLOCKSOURCE_PCLK2 = 0x01, /*!< PCLK2 clock source */
mbed_official 376:cb4d9db17537 122 IRDA_CLOCKSOURCE_HSI = 0x02, /*!< HSI clock source */
mbed_official 376:cb4d9db17537 123 IRDA_CLOCKSOURCE_SYSCLK = 0x04, /*!< SYSCLK clock source */
mbed_official 376:cb4d9db17537 124 IRDA_CLOCKSOURCE_LSE = 0x08 /*!< LSE clock source */
mbed_official 376:cb4d9db17537 125 }IRDA_ClockSourceTypeDef;
mbed_official 376:cb4d9db17537 126
mbed_official 376:cb4d9db17537 127 /**
mbed_official 376:cb4d9db17537 128 * @brief IRDA handle Structure definition
mbed_official 376:cb4d9db17537 129 */
mbed_official 376:cb4d9db17537 130 typedef struct
mbed_official 376:cb4d9db17537 131 {
mbed_official 376:cb4d9db17537 132 USART_TypeDef *Instance; /* IRDA registers base address */
mbed_official 376:cb4d9db17537 133
mbed_official 376:cb4d9db17537 134 IRDA_InitTypeDef Init; /* IRDA communication parameters */
mbed_official 376:cb4d9db17537 135
mbed_official 376:cb4d9db17537 136 uint8_t *pTxBuffPtr; /* Pointer to IRDA Tx transfer Buffer */
mbed_official 376:cb4d9db17537 137
mbed_official 376:cb4d9db17537 138 uint16_t TxXferSize; /* IRDA Tx Transfer size */
mbed_official 376:cb4d9db17537 139
mbed_official 376:cb4d9db17537 140 uint16_t TxXferCount; /* IRDA Tx Transfer Counter */
mbed_official 376:cb4d9db17537 141
mbed_official 376:cb4d9db17537 142 uint8_t *pRxBuffPtr; /* Pointer to IRDA Rx transfer Buffer */
mbed_official 376:cb4d9db17537 143
mbed_official 376:cb4d9db17537 144 uint16_t RxXferSize; /* IRDA Rx Transfer size */
mbed_official 376:cb4d9db17537 145
mbed_official 376:cb4d9db17537 146 uint16_t RxXferCount; /* IRDA Rx Transfer Counter */
mbed_official 376:cb4d9db17537 147
mbed_official 376:cb4d9db17537 148 uint16_t Mask; /* IRDA RX RDR register mask */
mbed_official 376:cb4d9db17537 149
mbed_official 376:cb4d9db17537 150 DMA_HandleTypeDef *hdmatx; /* IRDA Tx DMA Handle parameters */
mbed_official 376:cb4d9db17537 151
mbed_official 376:cb4d9db17537 152 DMA_HandleTypeDef *hdmarx; /* IRDA Rx DMA Handle parameters */
mbed_official 376:cb4d9db17537 153
mbed_official 376:cb4d9db17537 154 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 376:cb4d9db17537 155
mbed_official 376:cb4d9db17537 156 __IO HAL_IRDA_StateTypeDef State; /* IRDA communication state */
mbed_official 376:cb4d9db17537 157
mbed_official 489:119543c9f674 158 __IO uint32_t ErrorCode; /* IRDA Error code */
mbed_official 376:cb4d9db17537 159
mbed_official 376:cb4d9db17537 160 }IRDA_HandleTypeDef;
mbed_official 376:cb4d9db17537 161
mbed_official 376:cb4d9db17537 162 /**
mbed_official 376:cb4d9db17537 163 * @brief IRDA Configuration enumeration values definition
mbed_official 376:cb4d9db17537 164 */
mbed_official 376:cb4d9db17537 165
mbed_official 376:cb4d9db17537 166 /* Exported constants --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 167 /** @defgroup IRDA_Exported_Constants IRDA Exported Constants
mbed_official 376:cb4d9db17537 168 * @{
mbed_official 376:cb4d9db17537 169 */
mbed_official 376:cb4d9db17537 170
mbed_official 489:119543c9f674 171 /** @defgroup IRDA_Parity IRDA Parity
mbed_official 376:cb4d9db17537 172 * @{
mbed_official 376:cb4d9db17537 173 */
mbed_official 376:cb4d9db17537 174 #define IRDA_PARITY_NONE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 175 #define IRDA_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
mbed_official 376:cb4d9db17537 176 #define IRDA_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
mbed_official 376:cb4d9db17537 177 #define IS_IRDA_PARITY(PARITY) (((PARITY) == IRDA_PARITY_NONE) || \
mbed_official 376:cb4d9db17537 178 ((PARITY) == IRDA_PARITY_EVEN) || \
mbed_official 376:cb4d9db17537 179 ((PARITY) == IRDA_PARITY_ODD))
mbed_official 376:cb4d9db17537 180 /**
mbed_official 376:cb4d9db17537 181 * @}
mbed_official 376:cb4d9db17537 182 */
mbed_official 376:cb4d9db17537 183
mbed_official 376:cb4d9db17537 184
mbed_official 489:119543c9f674 185 /** @defgroup IRDA_Transfer_Mode IRDA transfer mode
mbed_official 376:cb4d9db17537 186 * @{
mbed_official 376:cb4d9db17537 187 */
mbed_official 376:cb4d9db17537 188 #define IRDA_MODE_RX ((uint32_t)USART_CR1_RE)
mbed_official 376:cb4d9db17537 189 #define IRDA_MODE_TX ((uint32_t)USART_CR1_TE)
mbed_official 376:cb4d9db17537 190 #define IRDA_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
mbed_official 376:cb4d9db17537 191 #define IS_IRDA_TX_RX_MODE(MODE) ((((MODE) & (~((uint32_t)(IRDA_MODE_TX_RX)))) == (uint32_t)0x00) && ((MODE) != (uint32_t)0x00))
mbed_official 376:cb4d9db17537 192 /**
mbed_official 376:cb4d9db17537 193 * @}
mbed_official 376:cb4d9db17537 194 */
mbed_official 376:cb4d9db17537 195
mbed_official 489:119543c9f674 196 /** @defgroup IRDA_Low_Power IRDA low power
mbed_official 376:cb4d9db17537 197 * @{
mbed_official 376:cb4d9db17537 198 */
mbed_official 376:cb4d9db17537 199 #define IRDA_POWERMODE_NORMAL ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 200 #define IRDA_POWERMODE_LOWPOWER ((uint32_t)USART_CR3_IRLP)
mbed_official 376:cb4d9db17537 201 #define IS_IRDA_POWERMODE(MODE) (((MODE) == IRDA_POWERMODE_LOWPOWER) || \
mbed_official 376:cb4d9db17537 202 ((MODE) == IRDA_POWERMODE_NORMAL))
mbed_official 376:cb4d9db17537 203 /**
mbed_official 376:cb4d9db17537 204 * @}
mbed_official 376:cb4d9db17537 205 */
mbed_official 376:cb4d9db17537 206
mbed_official 489:119543c9f674 207 /** @defgroup IRDA_State IRDA State
mbed_official 376:cb4d9db17537 208 * @{
mbed_official 376:cb4d9db17537 209 */
mbed_official 376:cb4d9db17537 210 #define IRDA_STATE_DISABLE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 211 #define IRDA_STATE_ENABLE ((uint32_t)USART_CR1_UE)
mbed_official 376:cb4d9db17537 212 #define IS_IRDA_STATE(STATE) (((STATE) == IRDA_STATE_DISABLE) || \
mbed_official 376:cb4d9db17537 213 ((STATE) == IRDA_STATE_ENABLE))
mbed_official 376:cb4d9db17537 214 /**
mbed_official 376:cb4d9db17537 215 * @}
mbed_official 376:cb4d9db17537 216 */
mbed_official 376:cb4d9db17537 217
mbed_official 489:119543c9f674 218 /** @defgroup IRDA_Mode IRDA Mode
mbed_official 376:cb4d9db17537 219 * @{
mbed_official 376:cb4d9db17537 220 */
mbed_official 376:cb4d9db17537 221 #define IRDA_MODE_DISABLE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 222 #define IRDA_MODE_ENABLE ((uint32_t)USART_CR3_IREN)
mbed_official 376:cb4d9db17537 223 #define IS_IRDA_MODE(STATE) (((STATE) == IRDA_MODE_DISABLE) || \
mbed_official 376:cb4d9db17537 224 ((STATE) == IRDA_MODE_ENABLE))
mbed_official 376:cb4d9db17537 225 /**
mbed_official 376:cb4d9db17537 226 * @}
mbed_official 376:cb4d9db17537 227 */
mbed_official 376:cb4d9db17537 228
mbed_official 489:119543c9f674 229 /** @defgroup IRDA_One_Bit IRDA One bit
mbed_official 376:cb4d9db17537 230 * @{
mbed_official 376:cb4d9db17537 231 */
mbed_official 489:119543c9f674 232 #define IRDA_ONE_BIT_SAMPLE_DISABLE ((uint32_t)0x00000000)
mbed_official 489:119543c9f674 233 #define IRDA_ONE_BIT_SAMPLE_ENABLE ((uint32_t)USART_CR3_ONEBIT)
mbed_official 489:119543c9f674 234 #define IS_IRDA_ONE_BIT_SAMPLE(ONEBIT) (((ONEBIT) == IRDA_ONE_BIT_SAMPLE_DISABLE) || \
mbed_official 489:119543c9f674 235 ((ONEBIT) == IRDA_ONE_BIT_SAMPLE_ENABLE))
mbed_official 376:cb4d9db17537 236 /**
mbed_official 376:cb4d9db17537 237 * @}
mbed_official 376:cb4d9db17537 238 */
mbed_official 376:cb4d9db17537 239
mbed_official 489:119543c9f674 240 /** @defgroup IRDA_DMA_Tx IRDA DMA TX
mbed_official 376:cb4d9db17537 241 * @{
mbed_official 376:cb4d9db17537 242 */
mbed_official 376:cb4d9db17537 243 #define IRDA_DMA_TX_DISABLE ((uint32_t)0x00000000)
mbed_official 376:cb4d9db17537 244 #define IRDA_DMA_TX_ENABLE ((uint32_t)USART_CR3_DMAT)
mbed_official 376:cb4d9db17537 245 #define IS_IRDA_DMA_TX(DMATX) (((DMATX) == IRDA_DMA_TX_DISABLE) || \
mbed_official 376:cb4d9db17537 246 ((DMATX) == IRDA_DMA_TX_ENABLE))
mbed_official 376:cb4d9db17537 247 /**
mbed_official 376:cb4d9db17537 248 * @}
mbed_official 376:cb4d9db17537 249 */
mbed_official 376:cb4d9db17537 250
mbed_official 489:119543c9f674 251 /** @defgroup IRDA_DMA_Rx IRDA DMA RX
mbed_official 376:cb4d9db17537 252 * @{
mbed_official 376:cb4d9db17537 253 */
mbed_official 376:cb4d9db17537 254 #define IRDA_DMA_RX_DISABLE ((uint32_t)0x0000)
mbed_official 376:cb4d9db17537 255 #define IRDA_DMA_RX_ENABLE ((uint32_t)USART_CR3_DMAR)
mbed_official 376:cb4d9db17537 256 #define IS_IRDA_DMA_RX(DMARX) (((DMARX) == IRDA_DMA_RX_DISABLE) || \
mbed_official 376:cb4d9db17537 257 ((DMARX) == IRDA_DMA_RX_ENABLE))
mbed_official 376:cb4d9db17537 258 /**
mbed_official 376:cb4d9db17537 259 * @}
mbed_official 376:cb4d9db17537 260 */
mbed_official 376:cb4d9db17537 261
mbed_official 489:119543c9f674 262 /** @defgroup IRDA_Flags IRDA Flags
mbed_official 376:cb4d9db17537 263 * Elements values convention: 0xXXXX
mbed_official 376:cb4d9db17537 264 * - 0xXXXX : Flag mask in the ISR register
mbed_official 376:cb4d9db17537 265 * @{
mbed_official 376:cb4d9db17537 266 */
mbed_official 376:cb4d9db17537 267 #define IRDA_FLAG_REACK ((uint32_t)0x00400000)
mbed_official 376:cb4d9db17537 268 #define IRDA_FLAG_TEACK ((uint32_t)0x00200000)
mbed_official 376:cb4d9db17537 269 #define IRDA_FLAG_BUSY ((uint32_t)0x00010000)
mbed_official 376:cb4d9db17537 270 #define IRDA_FLAG_ABRF ((uint32_t)0x00008000)
mbed_official 376:cb4d9db17537 271 #define IRDA_FLAG_ABRE ((uint32_t)0x00004000)
mbed_official 376:cb4d9db17537 272 #define IRDA_FLAG_TXE ((uint32_t)0x00000080)
mbed_official 376:cb4d9db17537 273 #define IRDA_FLAG_TC ((uint32_t)0x00000040)
mbed_official 376:cb4d9db17537 274 #define IRDA_FLAG_RXNE ((uint32_t)0x00000020)
mbed_official 376:cb4d9db17537 275 #define IRDA_FLAG_ORE ((uint32_t)0x00000008)
mbed_official 376:cb4d9db17537 276 #define IRDA_FLAG_NE ((uint32_t)0x00000004)
mbed_official 376:cb4d9db17537 277 #define IRDA_FLAG_FE ((uint32_t)0x00000002)
mbed_official 376:cb4d9db17537 278 #define IRDA_FLAG_PE ((uint32_t)0x00000001)
mbed_official 376:cb4d9db17537 279 /**
mbed_official 376:cb4d9db17537 280 * @}
mbed_official 376:cb4d9db17537 281 */
mbed_official 376:cb4d9db17537 282
mbed_official 489:119543c9f674 283 /** @defgroup IRDA_Interrupt_definition IRDA Interrupt definition
mbed_official 376:cb4d9db17537 284 * Elements values convention: 0000ZZZZ0XXYYYYYb
mbed_official 376:cb4d9db17537 285 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 376:cb4d9db17537 286 * - XX : Interrupt source register (2bits)
mbed_official 376:cb4d9db17537 287 * - 01: CR1 register
mbed_official 376:cb4d9db17537 288 * - 10: CR2 register
mbed_official 376:cb4d9db17537 289 * - 11: CR3 register
mbed_official 376:cb4d9db17537 290 * - ZZZZ : Flag position in the ISR register(4bits)
mbed_official 376:cb4d9db17537 291 * @{
mbed_official 376:cb4d9db17537 292 */
mbed_official 376:cb4d9db17537 293 #define IRDA_IT_PE ((uint16_t)0x0028)
mbed_official 376:cb4d9db17537 294 #define IRDA_IT_TXE ((uint16_t)0x0727)
mbed_official 376:cb4d9db17537 295 #define IRDA_IT_TC ((uint16_t)0x0626)
mbed_official 376:cb4d9db17537 296 #define IRDA_IT_RXNE ((uint16_t)0x0525)
mbed_official 376:cb4d9db17537 297 #define IRDA_IT_IDLE ((uint16_t)0x0424)
mbed_official 376:cb4d9db17537 298
mbed_official 376:cb4d9db17537 299
mbed_official 376:cb4d9db17537 300
mbed_official 376:cb4d9db17537 301 /** Elements values convention: 000000000XXYYYYYb
mbed_official 376:cb4d9db17537 302 * - YYYYY : Interrupt source position in the XX register (5bits)
mbed_official 376:cb4d9db17537 303 * - XX : Interrupt source register (2bits)
mbed_official 376:cb4d9db17537 304 * - 01: CR1 register
mbed_official 376:cb4d9db17537 305 * - 10: CR2 register
mbed_official 376:cb4d9db17537 306 * - 11: CR3 register
mbed_official 376:cb4d9db17537 307 */
mbed_official 376:cb4d9db17537 308 #define IRDA_IT_ERR ((uint16_t)0x0060)
mbed_official 376:cb4d9db17537 309
mbed_official 376:cb4d9db17537 310 /** Elements values convention: 0000ZZZZ00000000b
mbed_official 376:cb4d9db17537 311 * - ZZZZ : Flag position in the ISR register(4bits)
mbed_official 376:cb4d9db17537 312 */
mbed_official 376:cb4d9db17537 313 #define IRDA_IT_ORE ((uint16_t)0x0300)
mbed_official 376:cb4d9db17537 314 #define IRDA_IT_NE ((uint16_t)0x0200)
mbed_official 376:cb4d9db17537 315 #define IRDA_IT_FE ((uint16_t)0x0100)
mbed_official 376:cb4d9db17537 316 /**
mbed_official 376:cb4d9db17537 317 * @}
mbed_official 376:cb4d9db17537 318 */
mbed_official 376:cb4d9db17537 319
mbed_official 489:119543c9f674 320 /** @defgroup IRDA_IT_CLEAR_Flags IRDA Interrupt clear flag
mbed_official 376:cb4d9db17537 321 * @{
mbed_official 376:cb4d9db17537 322 */
mbed_official 376:cb4d9db17537 323 #define IRDA_CLEAR_PEF USART_ICR_PECF /*!< Parity Error Clear Flag */
mbed_official 376:cb4d9db17537 324 #define IRDA_CLEAR_FEF USART_ICR_FECF /*!< Framing Error Clear Flag */
mbed_official 376:cb4d9db17537 325 #define IRDA_CLEAR_NEF USART_ICR_NCF /*!< Noise detected Clear Flag */
mbed_official 376:cb4d9db17537 326 #define IRDA_CLEAR_OREF USART_ICR_ORECF /*!< OverRun Error Clear Flag */
mbed_official 489:119543c9f674 327 #define IRDA_CLEAR_TCF USART_ICR_TCCF /*!< Transmission Complete Clear Flag */
mbed_official 489:119543c9f674 328 #define IRDA_CLEAR_IDLEF USART_ICR_IDLECF /*!< IDLE line detected Clear Flag */
mbed_official 376:cb4d9db17537 329 /**
mbed_official 376:cb4d9db17537 330 * @}
mbed_official 376:cb4d9db17537 331 */
mbed_official 376:cb4d9db17537 332
mbed_official 376:cb4d9db17537 333
mbed_official 376:cb4d9db17537 334
mbed_official 489:119543c9f674 335 /** @defgroup IRDA_Request_Parameters IRDA Request parameters
mbed_official 376:cb4d9db17537 336 * @{
mbed_official 376:cb4d9db17537 337 */
mbed_official 489:119543c9f674 338 #define IRDA_AUTOBAUD_REQUEST ((uint32_t)USART_RQR_ABRRQ) /*!< Auto-Baud Rate Request */
mbed_official 489:119543c9f674 339 #define IRDA_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ) /*!< Receive Data flush Request */
mbed_official 489:119543c9f674 340 #define IRDA_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ) /*!< Transmit data flush Request */
mbed_official 376:cb4d9db17537 341 #define IS_IRDA_REQUEST_PARAMETER(PARAM) (((PARAM) == IRDA_AUTOBAUD_REQUEST) || \
mbed_official 376:cb4d9db17537 342 ((PARAM) == IRDA_SENDBREAK_REQUEST) || \
mbed_official 376:cb4d9db17537 343 ((PARAM) == IRDA_MUTE_MODE_REQUEST) || \
mbed_official 376:cb4d9db17537 344 ((PARAM) == IRDA_RXDATA_FLUSH_REQUEST) || \
mbed_official 376:cb4d9db17537 345 ((PARAM) == IRDA_TXDATA_FLUSH_REQUEST))
mbed_official 376:cb4d9db17537 346 /**
mbed_official 376:cb4d9db17537 347 * @}
mbed_official 376:cb4d9db17537 348 */
mbed_official 376:cb4d9db17537 349
mbed_official 489:119543c9f674 350 /** @defgroup IRDA_Interruption_Mask IRDA Interruption mask
mbed_official 376:cb4d9db17537 351 * @{
mbed_official 376:cb4d9db17537 352 */
mbed_official 376:cb4d9db17537 353 #define IRDA_IT_MASK ((uint16_t)0x001F)
mbed_official 376:cb4d9db17537 354 /**
mbed_official 376:cb4d9db17537 355 * @}
mbed_official 376:cb4d9db17537 356 */
mbed_official 376:cb4d9db17537 357
mbed_official 376:cb4d9db17537 358 /**
mbed_official 376:cb4d9db17537 359 * @}
mbed_official 376:cb4d9db17537 360 */
mbed_official 376:cb4d9db17537 361
mbed_official 376:cb4d9db17537 362
mbed_official 376:cb4d9db17537 363 /* Exported macro ------------------------------------------------------------*/
mbed_official 489:119543c9f674 364 /** @defgroup IRDA_Exported_Macros IRDA Exported Macros
mbed_official 376:cb4d9db17537 365 * @{
mbed_official 376:cb4d9db17537 366 */
mbed_official 376:cb4d9db17537 367
mbed_official 376:cb4d9db17537 368 /** @brief Reset IRDA handle state
mbed_official 376:cb4d9db17537 369 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 370 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 371 * @retval None
mbed_official 376:cb4d9db17537 372 */
mbed_official 376:cb4d9db17537 373 #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_IRDA_STATE_RESET)
mbed_official 376:cb4d9db17537 374
mbed_official 489:119543c9f674 375 /** @brief Flushs the IRDA DR register
mbed_official 489:119543c9f674 376 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 377 * The Handle Instance which can be USART1 or USART2.
mbed_official 489:119543c9f674 378 * @retval None
mbed_official 489:119543c9f674 379 */
mbed_official 489:119543c9f674 380 #define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__) \
mbed_official 489:119543c9f674 381 do{ \
mbed_official 489:119543c9f674 382 SET_BIT((__HANDLE__)->Instance->RQR, IRDA_RXDATA_FLUSH_REQUEST); \
mbed_official 489:119543c9f674 383 SET_BIT((__HANDLE__)->Instance->RQR, IRDA_TXDATA_FLUSH_REQUEST); \
mbed_official 489:119543c9f674 384 } while(0)
mbed_official 489:119543c9f674 385
mbed_official 489:119543c9f674 386
mbed_official 489:119543c9f674 387 /** @brief Clears the specified IRDA pending flag.
mbed_official 489:119543c9f674 388 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 389 * @param __FLAG__: specifies the flag to check.
mbed_official 489:119543c9f674 390 * This parameter can be any combination of the following values:
mbed_official 489:119543c9f674 391 * @arg IRDA_CLEAR_PEF
mbed_official 489:119543c9f674 392 * @arg IRDA_CLEAR_FEF
mbed_official 489:119543c9f674 393 * @arg IRDA_CLEAR_NEF
mbed_official 489:119543c9f674 394 * @arg IRDA_CLEAR_OREF
mbed_official 489:119543c9f674 395 * @arg IRDA_CLEAR_TCF
mbed_official 489:119543c9f674 396 * @arg IRDA_CLEAR_IDLEF
mbed_official 489:119543c9f674 397 * @retval None
mbed_official 489:119543c9f674 398 */
mbed_official 489:119543c9f674 399 #define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = ~(__FLAG__))
mbed_official 489:119543c9f674 400
mbed_official 489:119543c9f674 401 /** @brief Clear the IRDA PE pending flag.
mbed_official 489:119543c9f674 402 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 403 * @retval None
mbed_official 489:119543c9f674 404 */
mbed_official 489:119543c9f674 405 #define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG(__HANDLE__, IRDA_CLEAR_PEF)
mbed_official 489:119543c9f674 406
mbed_official 489:119543c9f674 407
mbed_official 489:119543c9f674 408 /** @brief Clear the IRDA FE pending flag.
mbed_official 489:119543c9f674 409 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 410 * @retval None
mbed_official 489:119543c9f674 411 */
mbed_official 489:119543c9f674 412 #define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG(__HANDLE__, IRDA_CLEAR_FEF)
mbed_official 489:119543c9f674 413
mbed_official 489:119543c9f674 414 /** @brief Clear the IRDA NE pending flag.
mbed_official 489:119543c9f674 415 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 416 * @retval None
mbed_official 489:119543c9f674 417 */
mbed_official 489:119543c9f674 418 #define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG(__HANDLE__, IRDA_CLEAR_NEF)
mbed_official 489:119543c9f674 419
mbed_official 489:119543c9f674 420 /** @brief Clear the IRDA ORE pending flag.
mbed_official 489:119543c9f674 421 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 422 * @retval None
mbed_official 489:119543c9f674 423 */
mbed_official 489:119543c9f674 424 #define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG(__HANDLE__, IRDA_CLEAR_OREF)
mbed_official 489:119543c9f674 425
mbed_official 489:119543c9f674 426 /** @brief Clear the IRDA IDLE pending flag.
mbed_official 489:119543c9f674 427 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 428 * @retval None
mbed_official 489:119543c9f674 429 */
mbed_official 489:119543c9f674 430 #define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG(__HANDLE__, IRDA_CLEAR_IDLEF)
mbed_official 489:119543c9f674 431
mbed_official 376:cb4d9db17537 432 /** @brief Check whether the specified IRDA flag is set or not.
mbed_official 376:cb4d9db17537 433 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 434 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 435 * UART peripheral
mbed_official 376:cb4d9db17537 436 * @param __FLAG__: specifies the flag to check.
mbed_official 376:cb4d9db17537 437 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 438 * @arg IRDA_FLAG_REACK: Receive enable ackowledge flag
mbed_official 376:cb4d9db17537 439 * @arg IRDA_FLAG_TEACK: Transmit enable ackowledge flag
mbed_official 376:cb4d9db17537 440 * @arg IRDA_FLAG_BUSY: Busy flag
mbed_official 376:cb4d9db17537 441 * @arg IRDA_FLAG_ABRF: Auto Baud rate detection flag
mbed_official 376:cb4d9db17537 442 * @arg IRDA_FLAG_ABRE: Auto Baud rate detection error flag
mbed_official 376:cb4d9db17537 443 * @arg IRDA_FLAG_TXE: Transmit data register empty flag
mbed_official 376:cb4d9db17537 444 * @arg IRDA_FLAG_TC: Transmission Complete flag
mbed_official 376:cb4d9db17537 445 * @arg IRDA_FLAG_RXNE: Receive data register not empty flag
mbed_official 376:cb4d9db17537 446 * @arg IRDA_FLAG_IDLE: Idle Line detection flag
mbed_official 376:cb4d9db17537 447 * @arg IRDA_FLAG_ORE: OverRun Error flag
mbed_official 376:cb4d9db17537 448 * @arg IRDA_FLAG_NE: Noise Error flag
mbed_official 376:cb4d9db17537 449 * @arg IRDA_FLAG_FE: Framing Error flag
mbed_official 376:cb4d9db17537 450 * @arg IRDA_FLAG_PE: Parity Error flag
mbed_official 376:cb4d9db17537 451 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 452 */
mbed_official 376:cb4d9db17537 453 #define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
mbed_official 376:cb4d9db17537 454
mbed_official 376:cb4d9db17537 455 /** @brief Enable the specified IRDA interrupt.
mbed_official 376:cb4d9db17537 456 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 457 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 458 * UART peripheral
mbed_official 376:cb4d9db17537 459 * @param __INTERRUPT__: specifies the IRDA interrupt source to enable.
mbed_official 376:cb4d9db17537 460 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 461 * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 462 * @arg IRDA_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 463 * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 464 * @arg IRDA_IT_IDLE: Idle line detection interrupt
mbed_official 376:cb4d9db17537 465 * @arg IRDA_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 466 * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 467 * @retval None
mbed_official 376:cb4d9db17537 468 */
mbed_official 376:cb4d9db17537 469 #define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5) == 1)? ((__HANDLE__)->Instance->CR1 |= (1 << ((__INTERRUPT__) & IRDA_IT_MASK))): \
mbed_official 376:cb4d9db17537 470 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 |= (1 << ((__INTERRUPT__) & IRDA_IT_MASK))): \
mbed_official 376:cb4d9db17537 471 ((__HANDLE__)->Instance->CR3 |= (1 << ((__INTERRUPT__) & IRDA_IT_MASK))))
mbed_official 376:cb4d9db17537 472
mbed_official 376:cb4d9db17537 473 /** @brief Disable the specified IRDA interrupt.
mbed_official 376:cb4d9db17537 474 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 475 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 476 * @param __INTERRUPT__: specifies the IRDA interrupt source to disable.
mbed_official 376:cb4d9db17537 477 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 478 * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 479 * @arg IRDA_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 480 * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 481 * @arg IRDA_IT_IDLE: Idle line detection interrupt
mbed_official 376:cb4d9db17537 482 * @arg IRDA_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 483 * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error)
mbed_official 376:cb4d9db17537 484 * @retval None
mbed_official 376:cb4d9db17537 485 */
mbed_official 376:cb4d9db17537 486 #define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & IRDA_IT_MASK))): \
mbed_official 376:cb4d9db17537 487 ((((uint8_t)(__INTERRUPT__)) >> 5) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & IRDA_IT_MASK))): \
mbed_official 376:cb4d9db17537 488 ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1 << ((__INTERRUPT__) & IRDA_IT_MASK))))
mbed_official 376:cb4d9db17537 489
mbed_official 376:cb4d9db17537 490 /** @brief Check whether the specified IRDA interrupt has occurred or not.
mbed_official 376:cb4d9db17537 491 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 492 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 493 * @param __IT__: specifies the IRDA interrupt source to check.
mbed_official 376:cb4d9db17537 494 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 495 * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 496 * @arg IRDA_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 497 * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 498 * @arg IRDA_IT_IDLE: Idle line detection interrupt
mbed_official 376:cb4d9db17537 499 * @arg IRDA_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 500 * @arg IRDA_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 501 * @arg IRDA_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 502 * @arg IRDA_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 503 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 504 */
mbed_official 376:cb4d9db17537 505 #define __HAL_IRDA_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
mbed_official 376:cb4d9db17537 506
mbed_official 376:cb4d9db17537 507 /** @brief Check whether the specified IRDA interrupt source is enabled.
mbed_official 376:cb4d9db17537 508 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 509 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 510 * @param __IT__: specifies the IRDA interrupt source to check.
mbed_official 376:cb4d9db17537 511 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 512 * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt
mbed_official 376:cb4d9db17537 513 * @arg IRDA_IT_TC: Transmission complete interrupt
mbed_official 376:cb4d9db17537 514 * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt
mbed_official 376:cb4d9db17537 515 * @arg IRDA_IT_IDLE: Idle line detection interrupt
mbed_official 376:cb4d9db17537 516 * @arg IRDA_IT_ORE: OverRun Error interrupt
mbed_official 376:cb4d9db17537 517 * @arg IRDA_IT_NE: Noise Error interrupt
mbed_official 376:cb4d9db17537 518 * @arg IRDA_IT_FE: Framing Error interrupt
mbed_official 376:cb4d9db17537 519 * @arg IRDA_IT_PE: Parity Error interrupt
mbed_official 376:cb4d9db17537 520 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 521 */
mbed_official 376:cb4d9db17537 522 #define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __IT__) ((((((uint8_t)(__IT__)) >> 5) == 1)? (__HANDLE__)->Instance->CR1:(((((uint8_t)(__IT__)) >> 5) == 2)? \
mbed_official 376:cb4d9db17537 523 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << (((uint16_t)(__IT__)) & IRDA_IT_MASK)))
mbed_official 376:cb4d9db17537 524
mbed_official 376:cb4d9db17537 525 /** @brief Clear the specified IRDA ISR flag, in setting the proper ICR register flag.
mbed_official 376:cb4d9db17537 526 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 527 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 528 * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set
mbed_official 376:cb4d9db17537 529 * to clear the corresponding interrupt
mbed_official 376:cb4d9db17537 530 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 531 * @arg IRDA_CLEAR_PEF: Parity Error Clear Flag
mbed_official 376:cb4d9db17537 532 * @arg IRDA_CLEAR_FEF: Framing Error Clear Flag
mbed_official 376:cb4d9db17537 533 * @arg IRDA_CLEAR_NEF: Noise detected Clear Flag
mbed_official 376:cb4d9db17537 534 * @arg IRDA_CLEAR_OREF: OverRun Error Clear Flag
mbed_official 376:cb4d9db17537 535 * @arg IRDA_CLEAR_TCF: Transmission Complete Clear Flag
mbed_official 376:cb4d9db17537 536 * @retval None
mbed_official 376:cb4d9db17537 537 */
mbed_official 376:cb4d9db17537 538 #define __HAL_IRDA_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR |= (uint32_t)(__IT_CLEAR__))
mbed_official 376:cb4d9db17537 539
mbed_official 376:cb4d9db17537 540 /** @brief Set a specific IRDA request flag.
mbed_official 376:cb4d9db17537 541 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 542 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 543 * @param __REQ__: specifies the request flag to set
mbed_official 376:cb4d9db17537 544 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 545 * @arg IRDA_AUTOBAUD_REQUEST: Auto-Baud Rate Request
mbed_official 376:cb4d9db17537 546 * @arg IRDA_RXDATA_FLUSH_REQUEST: Receive Data flush Request
mbed_official 376:cb4d9db17537 547 * @arg IRDA_TXDATA_FLUSH_REQUEST: Transmit data flush Request
mbed_official 376:cb4d9db17537 548 *
mbed_official 376:cb4d9db17537 549 * @retval None
mbed_official 376:cb4d9db17537 550 */
mbed_official 489:119543c9f674 551 #define __HAL_IRDA_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
mbed_official 489:119543c9f674 552
mbed_official 489:119543c9f674 553 /** @brief Enables the IRDA one bit sample method
mbed_official 489:119543c9f674 554 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 555 * @retval None
mbed_official 489:119543c9f674 556 */
mbed_official 489:119543c9f674 557 #define __HAL_IRDA_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
mbed_official 489:119543c9f674 558
mbed_official 489:119543c9f674 559 /** @brief Disables the IRDA one bit sample method
mbed_official 489:119543c9f674 560 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 489:119543c9f674 561 * @retval None
mbed_official 489:119543c9f674 562 */
mbed_official 489:119543c9f674 563 #define __HAL_IRDA_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
mbed_official 376:cb4d9db17537 564
mbed_official 376:cb4d9db17537 565 /** @brief Enable UART/USART associated to IRDA Handle
mbed_official 376:cb4d9db17537 566 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 567 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 568 * @retval None
mbed_official 376:cb4d9db17537 569 */
mbed_official 376:cb4d9db17537 570 #define __HAL_IRDA_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
mbed_official 376:cb4d9db17537 571
mbed_official 376:cb4d9db17537 572 /** @brief Disable UART/USART associated to IRDA Handle
mbed_official 376:cb4d9db17537 573 * @param __HANDLE__: specifies the IRDA Handle.
mbed_official 376:cb4d9db17537 574 * The Handle Instance which can be USART1 or USART2.
mbed_official 376:cb4d9db17537 575 * @retval None
mbed_official 376:cb4d9db17537 576 */
mbed_official 376:cb4d9db17537 577 #define __HAL_IRDA_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
mbed_official 376:cb4d9db17537 578
mbed_official 376:cb4d9db17537 579 /** @brief Ensure that IRDA Baud rate is less or equal to maximum value
mbed_official 376:cb4d9db17537 580 * @param __BAUDRATE__: specifies the IRDA Baudrate set by the user.
mbed_official 376:cb4d9db17537 581 * @retval True or False
mbed_official 376:cb4d9db17537 582 */
mbed_official 376:cb4d9db17537 583 #define IS_IRDA_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 115201)
mbed_official 376:cb4d9db17537 584
mbed_official 376:cb4d9db17537 585 /** @brief Ensure that IRDA prescaler value is strictly larger than 0
mbed_official 376:cb4d9db17537 586 * @param __PRESCALER__: specifies the IRDA prescaler value set by the user.
mbed_official 376:cb4d9db17537 587 * @retval True or False
mbed_official 376:cb4d9db17537 588 */
mbed_official 376:cb4d9db17537 589 #define IS_IRDA_PRESCALER(__PRESCALER__) ((__PRESCALER__) > 0)
mbed_official 376:cb4d9db17537 590
mbed_official 376:cb4d9db17537 591 /**
mbed_official 376:cb4d9db17537 592 * @}
mbed_official 376:cb4d9db17537 593 */
mbed_official 376:cb4d9db17537 594
mbed_official 376:cb4d9db17537 595 /* Include IRDA HAL Extension module */
mbed_official 376:cb4d9db17537 596 #include "stm32l0xx_hal_irda_ex.h"
mbed_official 376:cb4d9db17537 597
mbed_official 376:cb4d9db17537 598 /* Exported functions --------------------------------------------------------*/
mbed_official 489:119543c9f674 599 /** @defgroup IRDA_Exported_Functions IRDA Exported Functions
mbed_official 489:119543c9f674 600 * @{
mbed_official 489:119543c9f674 601 */
mbed_official 489:119543c9f674 602
mbed_official 489:119543c9f674 603 /** @defgroup IRDA_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 489:119543c9f674 604 * @{
mbed_official 489:119543c9f674 605 */
mbed_official 489:119543c9f674 606 /* Exported functions --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 607 /* Initialization/de-initialization methods **********************************/
mbed_official 376:cb4d9db17537 608 HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 609 HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 610 void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 611 void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda);
mbed_official 489:119543c9f674 612 /**
mbed_official 489:119543c9f674 613 * @}
mbed_official 489:119543c9f674 614 */
mbed_official 489:119543c9f674 615
mbed_official 489:119543c9f674 616 /** @defgroup IRDA_Exported_Functions_Group2 IRDA IO operationfunctions
mbed_official 489:119543c9f674 617 * @{
mbed_official 489:119543c9f674 618 */
mbed_official 376:cb4d9db17537 619
mbed_official 376:cb4d9db17537 620 /* IO operation methods *******************************************************/
mbed_official 376:cb4d9db17537 621 HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 622 HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 376:cb4d9db17537 623 HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 624 HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 625 HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 626 HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
mbed_official 376:cb4d9db17537 627 HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 628 HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 629 HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 630 void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 631 void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 632 void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 633 void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 634 void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 635 void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda);
mbed_official 489:119543c9f674 636 /**
mbed_official 489:119543c9f674 637 * @}
mbed_official 489:119543c9f674 638 */
mbed_official 376:cb4d9db17537 639
mbed_official 489:119543c9f674 640 /** @defgroup IRDA_Exported_Functions_Group3 Peripheral Control functions
mbed_official 489:119543c9f674 641 * @{
mbed_official 489:119543c9f674 642 */
mbed_official 376:cb4d9db17537 643 /* Peripheral State methods **************************************************/
mbed_official 376:cb4d9db17537 644 HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 645 uint32_t HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda);
mbed_official 376:cb4d9db17537 646
mbed_official 376:cb4d9db17537 647 /**
mbed_official 376:cb4d9db17537 648 * @}
mbed_official 376:cb4d9db17537 649 */
mbed_official 376:cb4d9db17537 650
mbed_official 376:cb4d9db17537 651 /**
mbed_official 376:cb4d9db17537 652 * @}
mbed_official 376:cb4d9db17537 653 */
mbed_official 489:119543c9f674 654
mbed_official 489:119543c9f674 655 /**
mbed_official 489:119543c9f674 656 * @}
mbed_official 489:119543c9f674 657 */
mbed_official 489:119543c9f674 658
mbed_official 489:119543c9f674 659 /**
mbed_official 489:119543c9f674 660 * @}
mbed_official 489:119543c9f674 661 */
mbed_official 376:cb4d9db17537 662 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 663 }
mbed_official 376:cb4d9db17537 664 #endif
mbed_official 376:cb4d9db17537 665
mbed_official 376:cb4d9db17537 666 #endif /* __STM32L0xx_HAL_IRDA_H */
mbed_official 376:cb4d9db17537 667
mbed_official 376:cb4d9db17537 668 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 489:119543c9f674 669