mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

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

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

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

Import librarymbed

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

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
573:ad23fe03a082
Child:
610:813dcc80987e
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

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

Initial version of drivers for SAMR21

Who changed what in which revision?

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