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:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

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