mbed library sources, include can_api for nucleo-f091rc

Dependents:   CanNucleoF0_example

Fork of mbed-src by mbed official

Committer:
ptpaterson
Date:
Thu Jan 07 05:49:05 2016 +0000
Revision:
645:13c87cbecd54
Parent:
610:813dcc80987e
corrected freeze on CAN_RECEIVE_IT

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 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-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 610:813dcc80987e 80 uint16_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
mbed_official 610:813dcc80987e 81 This parameter can be a value of @ref IRDA_Transfer_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****/