Subversion Repositories FuelGauge

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f0xx_hal_irda.h
4
  * @author  MCD Application Team
5
  * @brief   Header file of IRDA HAL module.
6
  ******************************************************************************
7
  * @attention
8
  *
9
  * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
10
  * All rights reserved.</center></h2>
11
  *
12
  * This software component is licensed by ST under BSD 3-Clause license,
13
  * the "License"; You may not use this file except in compliance with the
14
  * License. You may obtain a copy of the License at:
15
  *                        opensource.org/licenses/BSD-3-Clause
16
  *
17
  ******************************************************************************
18
  */
19
 
20
/* Define to prevent recursive inclusion -------------------------------------*/
21
#ifndef STM32F0xx_HAL_IRDA_H
22
#define STM32F0xx_HAL_IRDA_H
23
 
24
#ifdef __cplusplus
25
extern "C" {
26
#endif
27
 
28
#if defined(USART_IRDA_SUPPORT)
29
/* Includes ------------------------------------------------------------------*/
30
#include "stm32f0xx_hal_def.h"
31
 
32
/** @addtogroup STM32F0xx_HAL_Driver
33
  * @{
34
  */
35
 
36
/** @addtogroup IRDA
37
  * @{
38
  */
39
 
40
/* Exported types ------------------------------------------------------------*/
41
/** @defgroup IRDA_Exported_Types IRDA Exported Types
42
  * @{
43
  */
44
 
45
/**
46
  * @brief IRDA Init Structure definition
47
  */
48
typedef struct
49
{
50
  uint32_t BaudRate;                  /*!< This member configures the IRDA communication baud rate.
51
                                           The baud rate register is computed using the following formula:
52
                                              Baud Rate Register = ((usart_ker_clk) / ((hirda->Init.BaudRate)))
53
                                           where usart_ker_clk is the IRDA input clock */
54
 
55
  uint32_t WordLength;                /*!< Specifies the number of data bits transmitted or received in a frame.
56
                                           This parameter can be a value of @ref IRDAEx_Word_Length */
57
 
58
  uint32_t Parity;                    /*!< Specifies the parity mode.
59
                                           This parameter can be a value of @ref IRDA_Parity
60
                                           @note When parity is enabled, the computed parity is inserted
61
                                                 at the MSB position of the transmitted data (9th bit when
62
                                                 the word length is set to 9 data bits; 8th bit when the
63
                                                 word length is set to 8 data bits). */
64
 
65
  uint32_t Mode;                      /*!< Specifies whether the Receive or Transmit mode is enabled or disabled.
66
                                           This parameter can be a value of @ref IRDA_Transfer_Mode */
67
 
68
  uint8_t  Prescaler;                 /*!< Specifies the Prescaler value for dividing the UART/USART source clock
69
                                           to achieve low-power frequency.
70
                                           @note Prescaler value 0 is forbidden */
71
 
72
  uint16_t PowerMode;                 /*!< Specifies the IRDA power mode.
73
                                           This parameter can be a value of @ref IRDA_Low_Power */
74
 
75
} IRDA_InitTypeDef;
76
 
77
/**
78
  * @brief HAL IRDA State definition
79
  * @note  HAL IRDA State value is a combination of 2 different substates: gState and RxState (see @ref IRDA_State_Definition).
80
  *        - gState contains IRDA state information related to global Handle management
81
  *          and also information related to Tx operations.
82
  *          gState value coding follow below described bitmap :
83
  *          b7-b6  Error information
84
  *             00 : No Error
85
  *             01 : (Not Used)
86
  *             10 : Timeout
87
  *             11 : Error
88
  *          b5     Peripheral initialization status
89
  *             0  : Reset (Peripheral not initialized)
90
  *             1  : Init done (Peripheral not initialized. HAL IRDA Init function already called)
91
  *          b4-b3  (not used)
92
  *             xx : Should be set to 00
93
  *          b2     Intrinsic process state
94
  *             0  : Ready
95
  *             1  : Busy (Peripheral busy with some configuration or internal operations)
96
  *          b1     (not used)
97
  *             x  : Should be set to 0
98
  *          b0     Tx state
99
  *             0  : Ready (no Tx operation ongoing)
100
  *             1  : Busy (Tx operation ongoing)
101
  *        - RxState contains information related to Rx operations.
102
  *          RxState value coding follow below described bitmap :
103
  *          b7-b6  (not used)
104
  *             xx : Should be set to 00
105
  *          b5     Peripheral initialization status
106
  *             0  : Reset (Peripheral not initialized)
107
  *             1  : Init done (Peripheral not initialized)
108
  *          b4-b2  (not used)
109
  *            xxx : Should be set to 000
110
  *          b1     Rx state
111
  *             0  : Ready (no Rx operation ongoing)
112
  *             1  : Busy (Rx operation ongoing)
113
  *          b0     (not used)
114
  *             x  : Should be set to 0.
115
  */
116
typedef uint32_t HAL_IRDA_StateTypeDef;
117
 
118
/**
119
  * @brief IRDA clock sources definition
120
  */
121
typedef enum
122
{
123
  IRDA_CLOCKSOURCE_PCLK1      = 0x00U,    /*!< PCLK1 clock source         */
124
  IRDA_CLOCKSOURCE_HSI        = 0x02U,    /*!< HSI clock source           */
125
  IRDA_CLOCKSOURCE_SYSCLK     = 0x04U,    /*!< SYSCLK clock source        */
126
  IRDA_CLOCKSOURCE_LSE        = 0x10U,    /*!< LSE clock source           */
127
  IRDA_CLOCKSOURCE_UNDEFINED  = 0x20U     /*!< Undefined clock source     */
128
} IRDA_ClockSourceTypeDef;
129
 
130
/**
131
  * @brief  IRDA handle Structure definition
132
  */
133
#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
134
typedef struct __IRDA_HandleTypeDef
135
#else
136
typedef struct
137
#endif  /* USE_HAL_IRDA_REGISTER_CALLBACKS */
138
{
139
  USART_TypeDef            *Instance;        /*!< USART registers base address       */
140
 
141
  IRDA_InitTypeDef         Init;             /*!< IRDA communication parameters      */
142
 
143
  uint8_t                  *pTxBuffPtr;      /*!< Pointer to IRDA Tx transfer Buffer */
144
 
145
  uint16_t                 TxXferSize;       /*!< IRDA Tx Transfer size              */
146
 
147
  __IO uint16_t            TxXferCount;      /*!< IRDA Tx Transfer Counter           */
148
 
149
  uint8_t                  *pRxBuffPtr;      /*!< Pointer to IRDA Rx transfer Buffer */
150
 
151
  uint16_t                 RxXferSize;       /*!< IRDA Rx Transfer size              */
152
 
153
  __IO uint16_t            RxXferCount;      /*!< IRDA Rx Transfer Counter           */
154
 
155
  uint16_t                 Mask;             /*!< USART RX RDR register mask         */
156
 
157
  DMA_HandleTypeDef        *hdmatx;          /*!< IRDA Tx DMA Handle parameters      */
158
 
159
  DMA_HandleTypeDef        *hdmarx;          /*!< IRDA Rx DMA Handle parameters      */
160
 
161
  HAL_LockTypeDef          Lock;             /*!< Locking object                     */
162
 
163
  __IO HAL_IRDA_StateTypeDef    gState;      /*!< IRDA state information related to global Handle management
164
                                                  and also related to Tx operations.
165
                                                  This parameter can be a value of @ref HAL_IRDA_StateTypeDef */
166
 
167
  __IO HAL_IRDA_StateTypeDef    RxState;     /*!< IRDA state information related to Rx operations.
168
                                                  This parameter can be a value of @ref HAL_IRDA_StateTypeDef */
169
 
170
  __IO uint32_t            ErrorCode;        /*!< IRDA Error code                    */
171
 
172
#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
173
  void (* TxHalfCpltCallback)(struct __IRDA_HandleTypeDef *hirda);        /*!< IRDA Tx Half Complete Callback        */
174
 
175
  void (* TxCpltCallback)(struct __IRDA_HandleTypeDef *hirda);            /*!< IRDA Tx Complete Callback             */
176
 
177
  void (* RxHalfCpltCallback)(struct __IRDA_HandleTypeDef *hirda);        /*!< IRDA Rx Half Complete Callback        */
178
 
179
  void (* RxCpltCallback)(struct __IRDA_HandleTypeDef *hirda);            /*!< IRDA Rx Complete Callback             */
180
 
181
  void (* ErrorCallback)(struct __IRDA_HandleTypeDef *hirda);             /*!< IRDA Error Callback                   */
182
 
183
  void (* AbortCpltCallback)(struct __IRDA_HandleTypeDef *hirda);         /*!< IRDA Abort Complete Callback          */
184
 
185
  void (* AbortTransmitCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Abort Transmit Complete Callback */
186
 
187
  void (* AbortReceiveCpltCallback)(struct __IRDA_HandleTypeDef *hirda);  /*!< IRDA Abort Receive Complete Callback  */
188
 
189
 
190
  void (* MspInitCallback)(struct __IRDA_HandleTypeDef *hirda);           /*!< IRDA Msp Init callback                */
191
 
192
  void (* MspDeInitCallback)(struct __IRDA_HandleTypeDef *hirda);         /*!< IRDA Msp DeInit callback              */
193
#endif  /* USE_HAL_IRDA_REGISTER_CALLBACKS */
194
 
195
} IRDA_HandleTypeDef;
196
 
197
#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
198
/**
199
  * @brief  HAL IRDA Callback ID enumeration definition
200
  */
201
typedef enum
202
{
203
  HAL_IRDA_TX_HALFCOMPLETE_CB_ID         = 0x00U,    /*!< IRDA Tx Half Complete Callback ID        */
204
  HAL_IRDA_TX_COMPLETE_CB_ID             = 0x01U,    /*!< IRDA Tx Complete Callback ID             */
205
  HAL_IRDA_RX_HALFCOMPLETE_CB_ID         = 0x02U,    /*!< IRDA Rx Half Complete Callback ID        */
206
  HAL_IRDA_RX_COMPLETE_CB_ID             = 0x03U,    /*!< IRDA Rx Complete Callback ID             */
207
  HAL_IRDA_ERROR_CB_ID                   = 0x04U,    /*!< IRDA Error Callback ID                   */
208
  HAL_IRDA_ABORT_COMPLETE_CB_ID          = 0x05U,    /*!< IRDA Abort Complete Callback ID          */
209
  HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U,    /*!< IRDA Abort Transmit Complete Callback ID */
210
  HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID  = 0x07U,    /*!< IRDA Abort Receive Complete Callback ID  */
211
 
212
  HAL_IRDA_MSPINIT_CB_ID                 = 0x08U,    /*!< IRDA MspInit callback ID                 */
213
  HAL_IRDA_MSPDEINIT_CB_ID               = 0x09U     /*!< IRDA MspDeInit callback ID               */
214
 
215
} HAL_IRDA_CallbackIDTypeDef;
216
 
217
/**
218
  * @brief  HAL IRDA Callback pointer definition
219
  */
220
typedef  void (*pIRDA_CallbackTypeDef)(IRDA_HandleTypeDef *hirda);  /*!< pointer to an IRDA callback function */
221
 
222
#endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */
223
 
224
/**
225
  * @}
226
  */
227
 
228
/* Exported constants --------------------------------------------------------*/
229
/** @defgroup IRDA_Exported_Constants IRDA Exported Constants
230
  * @{
231
  */
232
 
233
/** @defgroup IRDA_State_Definition IRDA State Code Definition
234
  * @{
235
  */
236
#define HAL_IRDA_STATE_RESET                0x00000000U   /*!< Peripheral is not initialized
237
                                                               Value is allowed for gState and RxState */
238
#define HAL_IRDA_STATE_READY                0x00000020U   /*!< Peripheral Initialized and ready for use
239
                                                               Value is allowed for gState and RxState */
240
#define HAL_IRDA_STATE_BUSY                 0x00000024U   /*!< An internal process is ongoing
241
                                                               Value is allowed for gState only */
242
#define HAL_IRDA_STATE_BUSY_TX              0x00000021U   /*!< Data Transmission process is ongoing
243
                                                               Value is allowed for gState only */
244
#define HAL_IRDA_STATE_BUSY_RX              0x00000022U   /*!< Data Reception process is ongoing
245
                                                               Value is allowed for RxState only */
246
#define HAL_IRDA_STATE_BUSY_TX_RX           0x00000023U   /*!< Data Transmission and Reception process is ongoing
247
                                                               Not to be used for neither gState nor RxState.
248
                                                               Value is result of combination (Or) between gState and RxState values */
249
#define HAL_IRDA_STATE_TIMEOUT              0x000000A0U   /*!< Timeout state
250
                                                               Value is allowed for gState only */
251
#define HAL_IRDA_STATE_ERROR                0x000000E0U   /*!< Error
252
                                                               Value is allowed for gState only */
253
/**
254
  * @}
255
  */
256
 
257
/** @defgroup IRDA_Error_Definition IRDA Error Code Definition
258
  * @{
259
  */
260
#define HAL_IRDA_ERROR_NONE                 ((uint32_t)0x00000000U)          /*!< No error                */
261
#define HAL_IRDA_ERROR_PE                   ((uint32_t)0x00000001U)          /*!< Parity error            */
262
#define HAL_IRDA_ERROR_NE                   ((uint32_t)0x00000002U)          /*!< Noise error             */
263
#define HAL_IRDA_ERROR_FE                   ((uint32_t)0x00000004U)          /*!< frame error             */
264
#define HAL_IRDA_ERROR_ORE                  ((uint32_t)0x00000008U)          /*!< Overrun error           */
265
#define HAL_IRDA_ERROR_DMA                  ((uint32_t)0x00000010U)          /*!< DMA transfer error      */
266
#define HAL_IRDA_ERROR_BUSY                 ((uint32_t)0x00000020U)          /*!< Busy Error              */
267
#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
268
#define HAL_IRDA_ERROR_INVALID_CALLBACK     ((uint32_t)0x00000040U)          /*!< Invalid Callback error  */
269
#endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */
270
/**
271
  * @}
272
  */
273
 
274
/** @defgroup IRDA_Parity IRDA Parity
275
  * @{
276
  */
277
#define IRDA_PARITY_NONE                    0x00000000U                      /*!< No parity   */
278
#define IRDA_PARITY_EVEN                    USART_CR1_PCE                    /*!< Even parity */
279
#define IRDA_PARITY_ODD                     (USART_CR1_PCE | USART_CR1_PS)   /*!< Odd parity  */
280
/**
281
  * @}
282
  */
283
 
284
/** @defgroup IRDA_Transfer_Mode IRDA Transfer Mode
285
  * @{
286
  */
287
#define IRDA_MODE_RX                        USART_CR1_RE                   /*!< RX mode        */
288
#define IRDA_MODE_TX                        USART_CR1_TE                   /*!< TX mode        */
289
#define IRDA_MODE_TX_RX                     (USART_CR1_TE |USART_CR1_RE)   /*!< RX and TX mode */
290
/**
291
  * @}
292
  */
293
 
294
/** @defgroup IRDA_Low_Power IRDA Low Power
295
  * @{
296
  */
297
#define IRDA_POWERMODE_NORMAL               0x00000000U       /*!< IRDA normal power mode */
298
#define IRDA_POWERMODE_LOWPOWER             USART_CR3_IRLP    /*!< IRDA low power mode    */
299
/**
300
  * @}
301
  */
302
 
303
/** @defgroup IRDA_State IRDA State
304
  * @{
305
  */
306
#define IRDA_STATE_DISABLE                  0x00000000U     /*!< IRDA disabled  */
307
#define IRDA_STATE_ENABLE                   USART_CR1_UE    /*!< IRDA enabled   */
308
/**
309
  * @}
310
  */
311
 
312
/** @defgroup IRDA_Mode IRDA Mode
313
  * @{
314
  */
315
#define IRDA_MODE_DISABLE                   0x00000000U      /*!< Associated UART disabled in IRDA mode */
316
#define IRDA_MODE_ENABLE                    USART_CR3_IREN   /*!< Associated UART enabled in IRDA mode  */
317
/**
318
  * @}
319
  */
320
 
321
/** @defgroup IRDA_One_Bit IRDA One Bit Sampling
322
  * @{
323
  */
324
#define IRDA_ONE_BIT_SAMPLE_DISABLE         0x00000000U       /*!< One-bit sampling disabled */
325
#define IRDA_ONE_BIT_SAMPLE_ENABLE          USART_CR3_ONEBIT  /*!< One-bit sampling enabled  */
326
/**
327
  * @}
328
  */
329
 
330
/** @defgroup IRDA_DMA_Tx IRDA DMA Tx
331
  * @{
332
  */
333
#define IRDA_DMA_TX_DISABLE                 0x00000000U       /*!< IRDA DMA TX disabled */
334
#define IRDA_DMA_TX_ENABLE                  USART_CR3_DMAT    /*!< IRDA DMA TX enabled  */
335
/**
336
  * @}
337
  */
338
 
339
/** @defgroup IRDA_DMA_Rx IRDA DMA Rx
340
  * @{
341
  */
342
#define IRDA_DMA_RX_DISABLE                 0x00000000U       /*!< IRDA DMA RX disabled */
343
#define IRDA_DMA_RX_ENABLE                  USART_CR3_DMAR    /*!< IRDA DMA RX enabled  */
344
/**
345
  * @}
346
  */
347
 
348
/** @defgroup IRDA_Request_Parameters IRDA Request Parameters
349
  * @{
350
  */
351
#define IRDA_AUTOBAUD_REQUEST            USART_RQR_ABRRQ        /*!< Auto-Baud Rate Request      */
352
#define IRDA_RXDATA_FLUSH_REQUEST        USART_RQR_RXFRQ        /*!< Receive Data flush Request  */
353
#define IRDA_TXDATA_FLUSH_REQUEST        USART_RQR_TXFRQ        /*!< Transmit data flush Request */
354
/**
355
  * @}
356
  */
357
 
358
/** @defgroup IRDA_Flags IRDA Flags
359
  *        Elements values convention: 0xXXXX
360
  *           - 0xXXXX  : Flag mask in the ISR register
361
  * @{
362
  */
363
#define IRDA_FLAG_REACK                     USART_ISR_REACK         /*!< IRDA receive enable acknowledge flag      */
364
#define IRDA_FLAG_TEACK                     USART_ISR_TEACK         /*!< IRDA transmit enable acknowledge flag     */
365
#define IRDA_FLAG_BUSY                      USART_ISR_BUSY          /*!< IRDA busy flag                            */
366
#define IRDA_FLAG_ABRF                      USART_ISR_ABRF          /*!< IRDA auto Baud rate flag                  */
367
#define IRDA_FLAG_ABRE                      USART_ISR_ABRE          /*!< IRDA auto Baud rate error                 */
368
#define IRDA_FLAG_TXE                       USART_ISR_TXE           /*!< IRDA transmit data register empty         */
369
#define IRDA_FLAG_TC                        USART_ISR_TC            /*!< IRDA transmission complete                */
370
#define IRDA_FLAG_RXNE                      USART_ISR_RXNE          /*!< IRDA read data register not empty         */
371
#define IRDA_FLAG_ORE                       USART_ISR_ORE           /*!< IRDA overrun error                        */
372
#define IRDA_FLAG_NE                        USART_ISR_NE            /*!< IRDA noise error                          */
373
#define IRDA_FLAG_FE                        USART_ISR_FE            /*!< IRDA frame error                          */
374
#define IRDA_FLAG_PE                        USART_ISR_PE            /*!< IRDA parity error                         */
375
/**
376
  * @}
377
  */
378
 
379
/** @defgroup IRDA_Interrupt_definition IRDA Interrupts Definition
380
  *        Elements values convention: 0000ZZZZ0XXYYYYYb
381
  *           - YYYYY  : Interrupt source position in the XX register (5bits)
382
  *           - XX  : Interrupt source register (2bits)
383
  *                 - 01: CR1 register
384
  *                 - 10: CR2 register
385
  *                 - 11: CR3 register
386
  *           - ZZZZ  : Flag position in the ISR register(4bits)
387
  * @{
388
  */
389
#define IRDA_IT_PE                          0x0028U     /*!< IRDA Parity error interruption                 */
390
#define IRDA_IT_TXE                         0x0727U     /*!< IRDA Transmit data register empty interruption */
391
#define IRDA_IT_TC                          0x0626U     /*!< IRDA Transmission complete interruption        */
392
#define IRDA_IT_RXNE                        0x0525U     /*!< IRDA Read data register not empty interruption */
393
#define IRDA_IT_IDLE                        0x0424U     /*!< IRDA Idle interruption                         */
394
 
395
/*       Elements values convention: 000000000XXYYYYYb
396
             - YYYYY  : Interrupt source position in the XX register (5bits)
397
             - XX  : Interrupt source register (2bits)
398
                   - 01: CR1 register
399
                   - 10: CR2 register
400
                   - 11: CR3 register */
401
#define IRDA_IT_ERR                         0x0060U       /*!< IRDA Error interruption        */
402
 
403
/*       Elements values convention: 0000ZZZZ00000000b
404
             - ZZZZ  : Flag position in the ISR register(4bits) */
405
#define IRDA_IT_ORE                         0x0300U      /*!< IRDA Overrun error interruption */
406
#define IRDA_IT_NE                          0x0200U      /*!< IRDA Noise error interruption   */
407
#define IRDA_IT_FE                          0x0100U      /*!< IRDA Frame error interruption   */
408
/**
409
  * @}
410
  */
411
 
412
/** @defgroup IRDA_IT_CLEAR_Flags IRDA Interruption Clear Flags
413
  * @{
414
  */
415
#define IRDA_CLEAR_PEF                       USART_ICR_PECF            /*!< Parity Error Clear Flag          */
416
#define IRDA_CLEAR_FEF                       USART_ICR_FECF            /*!< Framing Error Clear Flag         */
417
#define IRDA_CLEAR_NEF                       USART_ICR_NCF            /*!< Noise Error detected Clear Flag  */
418
#define IRDA_CLEAR_OREF                      USART_ICR_ORECF           /*!< OverRun Error Clear Flag         */
419
#define IRDA_CLEAR_IDLEF                     USART_ICR_IDLECF          /*!< IDLE line detected Clear Flag    */
420
#define IRDA_CLEAR_TCF                       USART_ICR_TCCF            /*!< Transmission Complete Clear Flag */
421
/**
422
  * @}
423
  */
424
 
425
/** @defgroup IRDA_Interruption_Mask IRDA interruptions flags mask
426
  * @{
427
  */
428
#define IRDA_IT_MASK  0x001FU  /*!< IRDA Interruptions flags mask  */
429
#define IRDA_CR_MASK  0x00E0U  /*!< IRDA control register mask     */
430
#define IRDA_CR_POS   5U       /*!< IRDA control register position */
431
#define IRDA_ISR_MASK 0x1F00U  /*!< IRDA ISR register mask         */
432
#define IRDA_ISR_POS  8U       /*!< IRDA ISR register position     */
433
/**
434
  * @}
435
  */
436
 
437
/**
438
  * @}
439
  */
440
 
441
/* Exported macros -----------------------------------------------------------*/
442
/** @defgroup IRDA_Exported_Macros IRDA Exported Macros
443
  * @{
444
  */
445
 
446
/** @brief  Reset IRDA handle state.
447
  * @param  __HANDLE__ IRDA handle.
448
  * @retval None
449
  */
450
#if USE_HAL_IRDA_REGISTER_CALLBACKS == 1
451
#define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__)  do{                                                   \
452
                                                       (__HANDLE__)->gState = HAL_IRDA_STATE_RESET;      \
453
                                                       (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET;     \
454
                                                       (__HANDLE__)->MspInitCallback = NULL;             \
455
                                                       (__HANDLE__)->MspDeInitCallback = NULL;           \
456
                                                     } while(0U)
457
#else
458
#define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__)  do{                                                   \
459
                                                       (__HANDLE__)->gState = HAL_IRDA_STATE_RESET;      \
460
                                                       (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET;     \
461
                                                     } while(0U)
462
#endif /*USE_HAL_IRDA_REGISTER_CALLBACKS  */
463
 
464
/** @brief  Flush the IRDA DR register.
465
  * @param  __HANDLE__ specifies the IRDA Handle.
466
  * @retval None
467
  */
468
#define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__)                            \
469
  do{                                                                    \
470
    SET_BIT((__HANDLE__)->Instance->RQR, IRDA_RXDATA_FLUSH_REQUEST); \
471
    SET_BIT((__HANDLE__)->Instance->RQR, IRDA_TXDATA_FLUSH_REQUEST); \
472
  } while(0U)
473
 
474
/** @brief  Clear the specified IRDA pending flag.
475
  * @param  __HANDLE__ specifies the IRDA Handle.
476
  * @param  __FLAG__ specifies the flag to check.
477
  *          This parameter can be any combination of the following values:
478
  *            @arg @ref IRDA_CLEAR_PEF
479
  *            @arg @ref IRDA_CLEAR_FEF
480
  *            @arg @ref IRDA_CLEAR_NEF
481
  *            @arg @ref IRDA_CLEAR_OREF
482
  *            @arg @ref IRDA_CLEAR_TCF
483
  *            @arg @ref IRDA_CLEAR_IDLEF
484
  * @retval None
485
  */
486
#define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
487
 
488
/** @brief  Clear the IRDA PE pending flag.
489
  * @param  __HANDLE__ specifies the IRDA Handle.
490
  * @retval None
491
  */
492
#define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__)    __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_PEF)
493
 
494
 
495
/** @brief  Clear the IRDA FE pending flag.
496
  * @param  __HANDLE__ specifies the IRDA Handle.
497
  * @retval None
498
  */
499
#define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__)    __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_FEF)
500
 
501
/** @brief  Clear the IRDA NE pending flag.
502
  * @param  __HANDLE__ specifies the IRDA Handle.
503
  * @retval None
504
  */
505
#define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__)    __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_NEF)
506
 
507
/** @brief  Clear the IRDA ORE pending flag.
508
  * @param  __HANDLE__ specifies the IRDA Handle.
509
  * @retval None
510
  */
511
#define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__)    __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_OREF)
512
 
513
/** @brief  Clear the IRDA IDLE pending flag.
514
  * @param  __HANDLE__ specifies the IRDA Handle.
515
  * @retval None
516
  */
517
#define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__)   __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_IDLEF)
518
 
519
/** @brief  Check whether the specified IRDA flag is set or not.
520
  * @param  __HANDLE__ specifies the IRDA Handle.
521
  * @param  __FLAG__ specifies the flag to check.
522
  *        This parameter can be one of the following values:
523
  *            @arg @ref IRDA_FLAG_REACK Receive enable acknowledge flag
524
  *            @arg @ref IRDA_FLAG_TEACK Transmit enable acknowledge flag
525
  *            @arg @ref IRDA_FLAG_BUSY  Busy flag
526
  *            @arg @ref IRDA_FLAG_ABRF  Auto Baud rate detection flag
527
  *            @arg @ref IRDA_FLAG_ABRE  Auto Baud rate detection error flag
528
  *            @arg @ref IRDA_FLAG_TXE   Transmit data register empty flag
529
  *            @arg @ref IRDA_FLAG_TC    Transmission Complete flag
530
  *            @arg @ref IRDA_FLAG_RXNE  Receive data register not empty flag
531
  *            @arg @ref IRDA_FLAG_ORE   OverRun Error flag
532
  *            @arg @ref IRDA_FLAG_NE    Noise Error flag
533
  *            @arg @ref IRDA_FLAG_FE    Framing Error flag
534
  *            @arg @ref IRDA_FLAG_PE    Parity Error flag
535
  * @retval The new state of __FLAG__ (TRUE or FALSE).
536
  */
537
#define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
538
 
539
 
540
/** @brief  Enable the specified IRDA interrupt.
541
  * @param  __HANDLE__ specifies the IRDA Handle.
542
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to enable.
543
  *          This parameter can be one of the following values:
544
  *            @arg @ref IRDA_IT_TXE  Transmit Data Register empty interrupt
545
  *            @arg @ref IRDA_IT_TC   Transmission complete interrupt
546
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
547
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
548
  *            @arg @ref IRDA_IT_PE   Parity Error interrupt
549
  *            @arg @ref IRDA_IT_ERR  Error interrupt(Frame error, noise error, overrun error)
550
  * @retval None
551
  */
552
#define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__)   (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \
553
                                                           ((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \
554
                                                           ((__HANDLE__)->Instance->CR3 |= ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))))
555
 
556
/** @brief  Disable the specified IRDA interrupt.
557
  * @param  __HANDLE__ specifies the IRDA Handle.
558
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to disable.
559
  *          This parameter can be one of the following values:
560
  *            @arg @ref IRDA_IT_TXE  Transmit Data Register empty interrupt
561
  *            @arg @ref IRDA_IT_TC   Transmission complete interrupt
562
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
563
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
564
  *            @arg @ref IRDA_IT_PE   Parity Error interrupt
565
  *            @arg @ref IRDA_IT_ERR  Error interrupt(Frame error, noise error, overrun error)
566
  * @retval None
567
  */
568
#define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__)  (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 1U)? ((__HANDLE__)->Instance->CR1 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \
569
                                                           ((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 2U)? ((__HANDLE__)->Instance->CR2 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))): \
570
                                                           ((__HANDLE__)->Instance->CR3 &= ~ ((uint32_t)1U << ((__INTERRUPT__) & IRDA_IT_MASK))))
571
 
572
 
573
/** @brief  Check whether the specified IRDA interrupt has occurred or not.
574
  * @param  __HANDLE__ specifies the IRDA Handle.
575
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to check.
576
  *          This parameter can be one of the following values:
577
  *            @arg @ref IRDA_IT_TXE Transmit Data Register empty interrupt
578
  *            @arg @ref IRDA_IT_TC  Transmission complete interrupt
579
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
580
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
581
  *            @arg @ref IRDA_IT_ORE OverRun Error interrupt
582
  *            @arg @ref IRDA_IT_NE Noise Error interrupt
583
  *            @arg @ref IRDA_IT_FE Framing Error interrupt
584
  *            @arg @ref IRDA_IT_PE Parity Error interrupt
585
  * @retval The new state of __IT__ (SET or RESET).
586
  */
587
#define __HAL_IRDA_GET_IT(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->ISR\
588
                                                        & (0x01U << (((__INTERRUPT__) & IRDA_ISR_MASK)>> IRDA_ISR_POS))) != 0U) ? SET : RESET)
589
 
590
/** @brief  Check whether the specified IRDA interrupt source is enabled or not.
591
  * @param  __HANDLE__ specifies the IRDA Handle.
592
  * @param  __INTERRUPT__ specifies the IRDA interrupt source to check.
593
  *          This parameter can be one of the following values:
594
  *            @arg @ref IRDA_IT_TXE Transmit Data Register empty interrupt
595
  *            @arg @ref IRDA_IT_TC  Transmission complete interrupt
596
  *            @arg @ref IRDA_IT_RXNE Receive Data register not empty interrupt
597
  *            @arg @ref IRDA_IT_IDLE Idle line detection interrupt
598
  *            @arg @ref IRDA_IT_ERR Framing, overrun or noise error interrupt
599
  *            @arg @ref IRDA_IT_PE Parity Error interrupt
600
  * @retval The new state of __IT__ (SET or RESET).
601
  */
602
#define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 0x01U)? (__HANDLE__)->Instance->CR1 : \
603
                                                                (((((__INTERRUPT__) & IRDA_CR_MASK) >> IRDA_CR_POS) == 0x02U)? (__HANDLE__)->Instance->CR2 : \
604
                                                                 (__HANDLE__)->Instance->CR3)) & ((uint32_t)0x01U << (((uint16_t)(__INTERRUPT__)) & IRDA_IT_MASK))) != 0U) ? SET : RESET)
605
 
606
/** @brief  Clear the specified IRDA ISR flag, in setting the proper ICR register flag.
607
  * @param  __HANDLE__ specifies the IRDA Handle.
608
  * @param  __IT_CLEAR__ specifies the interrupt clear register flag that needs to be set
609
  *                       to clear the corresponding interrupt
610
  *          This parameter can be one of the following values:
611
  *            @arg @ref IRDA_CLEAR_PEF Parity Error Clear Flag
612
  *            @arg @ref IRDA_CLEAR_FEF Framing Error Clear Flag
613
  *            @arg @ref IRDA_CLEAR_NEF Noise detected Clear Flag
614
  *            @arg @ref IRDA_CLEAR_OREF OverRun Error Clear Flag
615
  *            @arg @ref IRDA_CLEAR_TCF Transmission Complete Clear Flag
616
  * @retval None
617
  */
618
#define __HAL_IRDA_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__IT_CLEAR__))
619
 
620
 
621
/** @brief  Set a specific IRDA request flag.
622
  * @param  __HANDLE__ specifies the IRDA Handle.
623
  * @param  __REQ__ specifies the request flag to set
624
  *          This parameter can be one of the following values:
625
  *            @arg @ref IRDA_AUTOBAUD_REQUEST Auto-Baud Rate Request
626
  *            @arg @ref IRDA_RXDATA_FLUSH_REQUEST Receive Data flush Request
627
  *            @arg @ref IRDA_TXDATA_FLUSH_REQUEST Transmit data flush Request
628
  * @retval None
629
  */
630
#define __HAL_IRDA_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint16_t)(__REQ__))
631
 
632
/** @brief  Enable the IRDA one bit sample method.
633
  * @param  __HANDLE__ specifies the IRDA Handle.
634
  * @retval None
635
  */
636
#define __HAL_IRDA_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
637
 
638
/** @brief  Disable the IRDA one bit sample method.
639
  * @param  __HANDLE__ specifies the IRDA Handle.
640
  * @retval None
641
  */
642
#define __HAL_IRDA_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3\
643
                                                       &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
644
 
645
/** @brief  Enable UART/USART associated to IRDA Handle.
646
  * @param  __HANDLE__ specifies the IRDA Handle.
647
  * @retval None
648
  */
649
#define __HAL_IRDA_ENABLE(__HANDLE__)                   ((__HANDLE__)->Instance->CR1 |=  USART_CR1_UE)
650
 
651
/** @brief  Disable UART/USART associated to IRDA Handle.
652
  * @param  __HANDLE__ specifies the IRDA Handle.
653
  * @retval None
654
  */
655
#define __HAL_IRDA_DISABLE(__HANDLE__)                  ((__HANDLE__)->Instance->CR1 &=  ~USART_CR1_UE)
656
 
657
/**
658
  * @}
659
  */
660
 
661
/* Private macros --------------------------------------------------------*/
662
/** @addtogroup IRDA_Private_Macros
663
  * @{
664
  */
665
 
666
/** @brief  Ensure that IRDA Baud rate is less or equal to maximum value.
667
  * @param  __BAUDRATE__ specifies the IRDA Baudrate set by the user.
668
  * @retval True or False
669
  */
670
#define IS_IRDA_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) < 115201U)
671
 
672
/** @brief  Ensure that IRDA prescaler value is strictly larger than 0.
673
  * @param  __PRESCALER__ specifies the IRDA prescaler value set by the user.
674
  * @retval True or False
675
  */
676
#define IS_IRDA_PRESCALER(__PRESCALER__) ((__PRESCALER__) > 0U)
677
 
678
/** @brief Ensure that IRDA frame parity is valid.
679
  * @param __PARITY__ IRDA frame parity.
680
  * @retval SET (__PARITY__ is valid) or RESET (__PARITY__ is invalid)
681
  */
682
#define IS_IRDA_PARITY(__PARITY__) (((__PARITY__) == IRDA_PARITY_NONE) || \
683
                                    ((__PARITY__) == IRDA_PARITY_EVEN) || \
684
                                    ((__PARITY__) == IRDA_PARITY_ODD))
685
 
686
/** @brief Ensure that IRDA communication mode is valid.
687
  * @param __MODE__ IRDA communication mode.
688
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
689
  */
690
#define IS_IRDA_TX_RX_MODE(__MODE__) ((((__MODE__)\
691
                                        & (~((uint32_t)(IRDA_MODE_TX_RX)))) == 0x00U) && ((__MODE__) != 0x00U))
692
 
693
/** @brief Ensure that IRDA power mode is valid.
694
  * @param __MODE__ IRDA power mode.
695
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
696
  */
697
#define IS_IRDA_POWERMODE(__MODE__) (((__MODE__) == IRDA_POWERMODE_LOWPOWER) || \
698
                                     ((__MODE__) == IRDA_POWERMODE_NORMAL))
699
 
700
/** @brief Ensure that IRDA state is valid.
701
  * @param __STATE__ IRDA state mode.
702
  * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid)
703
  */
704
#define IS_IRDA_STATE(__STATE__) (((__STATE__) == IRDA_STATE_DISABLE) || \
705
                                  ((__STATE__) == IRDA_STATE_ENABLE))
706
 
707
/** @brief Ensure that IRDA associated UART/USART mode is valid.
708
  * @param __MODE__ IRDA associated UART/USART mode.
709
  * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid)
710
  */
711
#define IS_IRDA_MODE(__MODE__)  (((__MODE__) == IRDA_MODE_DISABLE) || \
712
                                 ((__MODE__) == IRDA_MODE_ENABLE))
713
 
714
/** @brief Ensure that IRDA sampling rate is valid.
715
  * @param __ONEBIT__ IRDA sampling rate.
716
  * @retval SET (__ONEBIT__ is valid) or RESET (__ONEBIT__ is invalid)
717
  */
718
#define IS_IRDA_ONE_BIT_SAMPLE(__ONEBIT__)      (((__ONEBIT__) == IRDA_ONE_BIT_SAMPLE_DISABLE) || \
719
                                                 ((__ONEBIT__) == IRDA_ONE_BIT_SAMPLE_ENABLE))
720
 
721
/** @brief Ensure that IRDA DMA TX mode is valid.
722
  * @param __DMATX__ IRDA DMA TX mode.
723
  * @retval SET (__DMATX__ is valid) or RESET (__DMATX__ is invalid)
724
  */
725
#define IS_IRDA_DMA_TX(__DMATX__)     (((__DMATX__) == IRDA_DMA_TX_DISABLE) || \
726
                                       ((__DMATX__) == IRDA_DMA_TX_ENABLE))
727
 
728
/** @brief Ensure that IRDA DMA RX mode is valid.
729
  * @param __DMARX__ IRDA DMA RX mode.
730
  * @retval SET (__DMARX__ is valid) or RESET (__DMARX__ is invalid)
731
  */
732
#define IS_IRDA_DMA_RX(__DMARX__) (((__DMARX__) == IRDA_DMA_RX_DISABLE) || \
733
                                   ((__DMARX__) == IRDA_DMA_RX_ENABLE))
734
 
735
/** @brief Ensure that IRDA request is valid.
736
  * @param __PARAM__ IRDA request.
737
  * @retval SET (__PARAM__ is valid) or RESET (__PARAM__ is invalid)
738
  */
739
#define IS_IRDA_REQUEST_PARAMETER(__PARAM__) (((__PARAM__) == IRDA_AUTOBAUD_REQUEST) || \
740
                                              ((__PARAM__) == IRDA_RXDATA_FLUSH_REQUEST) || \
741
                                              ((__PARAM__) == IRDA_TXDATA_FLUSH_REQUEST))
742
/**
743
  * @}
744
  */
745
 
746
/* Include IRDA HAL Extended module */
747
#include "stm32f0xx_hal_irda_ex.h"
748
 
749
/* Exported functions --------------------------------------------------------*/
750
/** @addtogroup IRDA_Exported_Functions IRDA Exported Functions
751
  * @{
752
  */
753
 
754
/** @addtogroup IRDA_Exported_Functions_Group1 Initialization and de-initialization functions
755
  * @{
756
  */
757
 
758
/* Initialization and de-initialization functions  ****************************/
759
HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda);
760
HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda);
761
void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda);
762
void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda);
763
 
764
#if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1)
765
/* Callbacks Register/UnRegister functions  ***********************************/
766
HAL_StatusTypeDef HAL_IRDA_RegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID,
767
                                            pIRDA_CallbackTypeDef pCallback);
768
HAL_StatusTypeDef HAL_IRDA_UnRegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID);
769
#endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */
770
 
771
/**
772
  * @}
773
  */
774
 
775
/** @addtogroup IRDA_Exported_Functions_Group2 IO operation functions
776
  * @{
777
  */
778
 
779
/* IO operation functions *****************************************************/
780
HAL_StatusTypeDef HAL_IRDA_Transmit(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
781
HAL_StatusTypeDef HAL_IRDA_Receive(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size, uint32_t Timeout);
782
HAL_StatusTypeDef HAL_IRDA_Transmit_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
783
HAL_StatusTypeDef HAL_IRDA_Receive_IT(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
784
HAL_StatusTypeDef HAL_IRDA_Transmit_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
785
HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData, uint16_t Size);
786
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
787
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
788
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
789
/* Transfer Abort functions */
790
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda);
791
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda);
792
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda);
793
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda);
794
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda);
795
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda);
796
 
797
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda);
798
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda);
799
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda);
800
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
801
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
802
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda);
803
void HAL_IRDA_AbortCpltCallback(IRDA_HandleTypeDef *hirda);
804
void HAL_IRDA_AbortTransmitCpltCallback(IRDA_HandleTypeDef *hirda);
805
void HAL_IRDA_AbortReceiveCpltCallback(IRDA_HandleTypeDef *hirda);
806
 
807
/**
808
  * @}
809
  */
810
 
811
/* Peripheral Control functions  ************************************************/
812
 
813
/** @addtogroup IRDA_Exported_Functions_Group4 Peripheral State and Error functions
814
  * @{
815
  */
816
 
817
/* Peripheral State and Error functions ***************************************/
818
HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda);
819
uint32_t              HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda);
820
 
821
/**
822
  * @}
823
  */
824
 
825
/**
826
  * @}
827
  */
828
 
829
/**
830
  * @}
831
  */
832
 
833
/**
834
  * @}
835
  */
836
#endif /* USART_IRDA_SUPPORT */  
837
 
838
#ifdef __cplusplus
839
}
840
#endif
841
 
842
#endif /* STM32F0xx_HAL_IRDA_H */
843
 
844
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/