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:
Mon Sep 28 14:00:11 2015 +0100
Revision:
632:7687fb9c4f91
Parent:
385:be64abf45658
Child:
634:ac7d6880524d
Synchronized with git revision f7ce4ed029cc611121464252ff28d5e8beb895b0

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

NUCLEO_F303K8 - add support of the STM32F303K8

Who changed what in which revision?

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