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 10:45:10 2015 +0100
Revision:
630:825f75ca301e
Parent:
441:d2c15dda23c1
Synchronized with git revision 54fbe4144faf309c37205a5d39fa665daa919f10

Full URL: https://github.com/mbedmicro/mbed/commit/54fbe4144faf309c37205a5d39fa665daa919f10/

NUCLEO_F031K6 : Add new target

Who changed what in which revision?

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