Subversion Repositories AFRtranscoder

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_cec.h
4
  * @author  MCD Application Team
5
  * @brief   Header file of CEC HAL module.
6
  ******************************************************************************
7
  * @attention
8
  *
9
  * Copyright (c) 2016 STMicroelectronics.
10
  * All rights reserved.
11
  *
12
  * This software is licensed under terms that can be found in the LICENSE file
13
  * in the root directory of this software component.
14
  * If no LICENSE file comes with this software, it is provided AS-IS.
15
  *
16
  ******************************************************************************
17
  */
18
 
19
/* Define to prevent recursive inclusion -------------------------------------*/
20
#ifndef __STM32F1xx_HAL_CEC_H
21
#define __STM32F1xx_HAL_CEC_H
22
 
23
#ifdef __cplusplus
24
extern "C" {
25
#endif
26
 
27
/* Includes ------------------------------------------------------------------*/
28
#include "stm32f1xx_hal_def.h"
29
 
30
#if defined (CEC)
31
 
32
/** @addtogroup STM32F1xx_HAL_Driver
33
  * @{
34
  */
35
 
36
/** @addtogroup CEC
37
  * @{
38
  */
39
 
40
/* Exported types ------------------------------------------------------------*/
41
/** @defgroup CEC_Exported_Types CEC Exported Types
42
  * @{
43
  */
44
 
45
/**
46
  * @brief CEC Init Structure definition
47
  */
48
typedef struct
49
{
50
  uint32_t  TimingErrorFree;             /*!< Configures the CEC Bit Timing Error Mode.
51
                                              This parameter can be a value of CEC_BitTimingErrorMode */
52
 
53
  uint32_t  PeriodErrorFree;             /*!< Configures the CEC Bit Period Error Mode.
54
                                              This parameter can be a value of CEC_BitPeriodErrorMode */
55
 
56
  uint16_t  OwnAddress;                  /*!< Own addresses configuration
57
                                              This parameter can be a value of @ref CEC_OWN_ADDRESS */
58
 
59
  uint8_t  *RxBuffer;                    /*!< CEC Rx buffer pointer */
60
} CEC_InitTypeDef;
61
 
62
/**
63
  * @brief HAL CEC State definition
64
  * @note  HAL CEC State value is a combination of 2 different substates: gState and RxState
65
           (see @ref CEC_State_Definition).
66
  *        - gState contains CEC state information related to global Handle management
67
  *          and also information related to Tx operations.
68
  *          gState value coding follow below described bitmap :
69
  *          b7 (not used)
70
  *             x  : Should be set to 0
71
  *          b6  Error information
72
  *             0  : No Error
73
  *             1  : Error
74
  *          b5     CEC peripheral initialization status
75
  *             0  : Reset (peripheral not initialized)
76
  *             1  : Init done (peripheral initialized. HAL CEC Init function already called)
77
  *          b4-b3  (not used)
78
  *             xx : Should be set to 00
79
  *          b2     Intrinsic process state
80
  *             0  : Ready
81
  *             1  : Busy (peripheral busy with some configuration or internal operations)
82
  *          b1     (not used)
83
  *             x  : Should be set to 0
84
  *          b0     Tx state
85
  *             0  : Ready (no Tx operation ongoing)
86
  *             1  : Busy (Tx operation ongoing)
87
  *        - RxState contains information related to Rx operations.
88
  *          RxState value coding follow below described bitmap :
89
  *          b7-b6  (not used)
90
  *             xx : Should be set to 00
91
  *          b5     CEC peripheral initialization status
92
  *             0  : Reset (peripheral not initialized)
93
  *             1  : Init done (peripheral initialized)
94
  *          b4-b2  (not used)
95
  *            xxx : Should be set to 000
96
  *          b1     Rx state
97
  *             0  : Ready (no Rx operation ongoing)
98
  *             1  : Busy (Rx operation ongoing)
99
  *          b0     (not used)
100
  *             x  : Should be set to 0.
101
  */
102
typedef enum
103
{
104
  HAL_CEC_STATE_RESET             = 0x00U,    /*!< Peripheral is not yet Initialized
105
                                                   Value is allowed for gState and RxState             */
106
  HAL_CEC_STATE_READY             = 0x20U,    /*!< Peripheral Initialized and ready for use
107
                                                   Value is allowed for gState and RxState             */
108
  HAL_CEC_STATE_BUSY              = 0x24U,    /*!< an internal process is ongoing
109
                                                   Value is allowed for gState only                    */
110
  HAL_CEC_STATE_BUSY_RX           = 0x22U,    /*!< Data Reception process is ongoing
111
                                                   Value is allowed for RxState only                   */
112
  HAL_CEC_STATE_BUSY_TX           = 0x21U,    /*!< Data Transmission process is ongoing
113
                                                   Value is allowed for gState only                    */
114
  HAL_CEC_STATE_BUSY_RX_TX        = 0x23U,    /*!< an internal process is ongoing
115
                                                   Value is allowed for gState only                    */
116
  HAL_CEC_STATE_ERROR             = 0x60U     /*!< Error Value is allowed for gState only              */
117
} HAL_CEC_StateTypeDef;
118
 
119
/**
120
  * @brief  CEC handle Structure definition
121
  */
122
typedef struct __CEC_HandleTypeDef
123
{
124
  CEC_TypeDef             *Instance;      /*!< CEC registers base address */
125
 
126
  CEC_InitTypeDef         Init;           /*!< CEC communication parameters */
127
 
128
  const uint8_t           *pTxBuffPtr;    /*!< Pointer to CEC Tx transfer Buffer */
129
 
130
  uint16_t                TxXferCount;    /*!< CEC Tx Transfer Counter */
131
 
132
  uint16_t                RxXferSize;     /*!< CEC Rx Transfer size, 0: header received only */
133
 
134
  HAL_LockTypeDef         Lock;           /*!< Locking object */
135
 
136
  HAL_CEC_StateTypeDef    gState;         /*!< CEC state information related to global Handle management
137
                                               and also related to Tx operations.
138
                                               This parameter can be a value of @ref HAL_CEC_StateTypeDef */
139
 
140
  HAL_CEC_StateTypeDef    RxState;        /*!< CEC state information related to Rx operations.
141
                                               This parameter can be a value of @ref HAL_CEC_StateTypeDef */
142
 
143
  uint32_t                ErrorCode;      /*!< For errors handling purposes, copy of ISR register
144
                                               in case error is reported */
145
 
146
#if (USE_HAL_CEC_REGISTER_CALLBACKS == 1)
147
  void (* TxCpltCallback)(struct __CEC_HandleTypeDef *hcec); /*!< CEC Tx Transfer completed callback */
148
  void (* RxCpltCallback)(struct __CEC_HandleTypeDef *hcec,
149
                          uint32_t RxFrameSize);          /*!< CEC Rx Transfer completed callback    */
150
  void (* ErrorCallback)(struct __CEC_HandleTypeDef *hcec); /*!< CEC error callback                  */
151
 
152
  void (* MspInitCallback)(struct __CEC_HandleTypeDef *hcec);               /*!< CEC Msp Init callback              */
153
  void (* MspDeInitCallback)(struct __CEC_HandleTypeDef *hcec);             /*!< CEC Msp DeInit callback            */
154
 
155
#endif /* (USE_HAL_CEC_REGISTER_CALLBACKS) */
156
} CEC_HandleTypeDef;
157
 
158
#if (USE_HAL_CEC_REGISTER_CALLBACKS == 1)
159
/**
160
  * @brief  HAL CEC Callback ID enumeration definition
161
  */
162
typedef enum
163
{
164
  HAL_CEC_TX_CPLT_CB_ID      = 0x00U,    /*!< CEC Tx Transfer completed callback ID  */
165
  HAL_CEC_RX_CPLT_CB_ID      = 0x01U,    /*!< CEC Rx Transfer completed callback ID  */
166
  HAL_CEC_ERROR_CB_ID        = 0x02U,    /*!< CEC error callback ID                  */
167
  HAL_CEC_MSPINIT_CB_ID      = 0x03U,    /*!< CEC Msp Init callback ID               */
168
  HAL_CEC_MSPDEINIT_CB_ID    = 0x04U     /*!< CEC Msp DeInit callback ID             */
169
} HAL_CEC_CallbackIDTypeDef;
170
 
171
/**
172
  * @brief  HAL CEC Callback pointer definition
173
  */
174
typedef  void (*pCEC_CallbackTypeDef)(CEC_HandleTypeDef *hcec);  /*!< pointer to an CEC callback function */
175
typedef  void (*pCEC_RxCallbackTypeDef)(CEC_HandleTypeDef *hcec,
176
                                        uint32_t RxFrameSize);  /*!< pointer to an Rx Transfer completed
177
                                                                     callback function */
178
#endif /* USE_HAL_CEC_REGISTER_CALLBACKS */
179
/**
180
  * @}
181
  */
182
 
183
/* Exported constants --------------------------------------------------------*/
184
/** @defgroup CEC_Exported_Constants CEC Exported Constants
185
  * @{
186
  */
187
 
188
/** @defgroup CEC_Error_Code CEC Error Code
189
  * @{
190
  */
191
#define HAL_CEC_ERROR_NONE   0x00000000U    /*!< no error */
192
#define HAL_CEC_ERROR_BTE    CEC_ESR_BTE    /*!< Bit Timing Error */
193
#define HAL_CEC_ERROR_BPE    CEC_ESR_BPE    /*!< Bit Period Error */
194
#define HAL_CEC_ERROR_RBTFE  CEC_ESR_RBTFE  /*!< Rx Block Transfer Finished Error */
195
#define HAL_CEC_ERROR_SBE    CEC_ESR_SBE    /*!< Start Bit Error */
196
#define HAL_CEC_ERROR_ACKE   CEC_ESR_ACKE   /*!< Block Acknowledge Error */
197
#define HAL_CEC_ERROR_LINE   CEC_ESR_LINE   /*!< Line Error */
198
#define HAL_CEC_ERROR_TBTFE  CEC_ESR_TBTFE  /*!< Tx Block Transfer Finished Error */
199
#if (USE_HAL_CEC_REGISTER_CALLBACKS == 1)
200
#define  HAL_CEC_ERROR_INVALID_CALLBACK ((uint32_t)0x00000080U) /*!< Invalid Callback Error  */
201
#endif /* USE_HAL_CEC_REGISTER_CALLBACKS */
202
/**
203
  * @}
204
  */
205
 
206
/** @defgroup CEC_BitTimingErrorMode Bit Timing Error Mode
207
  * @{
208
  */
209
#define CEC_BIT_TIMING_ERROR_MODE_STANDARD  0x00000000U      /*!< Bit timing error Standard Mode */
210
#define CEC_BIT_TIMING_ERROR_MODE_ERRORFREE CEC_CFGR_BTEM    /*!< Bit timing error Free Mode */
211
/**
212
  * @}
213
  */
214
 
215
/** @defgroup CEC_BitPeriodErrorMode Bit Period Error Mode
216
  * @{
217
  */
218
#define CEC_BIT_PERIOD_ERROR_MODE_STANDARD 0x00000000U      /*!< Bit period error Standard Mode */
219
#define CEC_BIT_PERIOD_ERROR_MODE_FLEXIBLE CEC_CFGR_BPEM    /*!< Bit period error Flexible Mode */
220
/**
221
  * @}
222
  */
223
 
224
/** @defgroup CEC_Initiator_Position   CEC Initiator logical address position in message header
225
  * @{
226
  */
227
#define CEC_INITIATOR_LSB_POS                  4U
228
/**
229
  * @}
230
  */
231
 
232
/** @defgroup CEC_OWN_ADDRESS   CEC Own Address
233
  * @{
234
  */
235
#define CEC_OWN_ADDRESS_NONE            CEC_OWN_ADDRESS_0    /* Reset value */
236
#define CEC_OWN_ADDRESS_0              ((uint16_t)0x0000U)   /* Logical Address 0 */
237
#define CEC_OWN_ADDRESS_1              ((uint16_t)0x0001U)   /* Logical Address 1 */
238
#define CEC_OWN_ADDRESS_2              ((uint16_t)0x0002U)   /* Logical Address 2 */
239
#define CEC_OWN_ADDRESS_3              ((uint16_t)0x0003U)   /* Logical Address 3 */
240
#define CEC_OWN_ADDRESS_4              ((uint16_t)0x0004U)   /* Logical Address 4 */
241
#define CEC_OWN_ADDRESS_5              ((uint16_t)0x0005U)   /* Logical Address 5 */
242
#define CEC_OWN_ADDRESS_6              ((uint16_t)0x0006U)   /* Logical Address 6 */
243
#define CEC_OWN_ADDRESS_7              ((uint16_t)0x0007U)   /* Logical Address 7 */
244
#define CEC_OWN_ADDRESS_8              ((uint16_t)0x0008U)   /* Logical Address 8 */
245
#define CEC_OWN_ADDRESS_9              ((uint16_t)0x0009U)   /* Logical Address 9 */
246
#define CEC_OWN_ADDRESS_10             ((uint16_t)0x000AU)   /* Logical Address 10 */
247
#define CEC_OWN_ADDRESS_11             ((uint16_t)0x000BU)   /* Logical Address 11 */
248
#define CEC_OWN_ADDRESS_12             ((uint16_t)0x000CU)   /* Logical Address 12 */
249
#define CEC_OWN_ADDRESS_13             ((uint16_t)0x000DU)   /* Logical Address 13 */
250
#define CEC_OWN_ADDRESS_14             ((uint16_t)0x000EU)   /* Logical Address 14 */
251
#define CEC_OWN_ADDRESS_15             ((uint16_t)0x000FU)   /* Logical Address 15 */
252
/**
253
  * @}
254
  */
255
 
256
/** @defgroup CEC_Interrupts_Definitions  Interrupts definition
257
  * @{
258
  */
259
#define CEC_IT_IE CEC_CFGR_IE
260
/**
261
  * @}
262
  */
263
 
264
/** @defgroup CEC_Flags_Definitions  Flags definition
265
  * @{
266
  */
267
#define CEC_FLAG_TSOM  CEC_CSR_TSOM
268
#define CEC_FLAG_TEOM  CEC_CSR_TEOM
269
#define CEC_FLAG_TERR  CEC_CSR_TERR
270
#define CEC_FLAG_TBTRF CEC_CSR_TBTRF
271
#define CEC_FLAG_RSOM  CEC_CSR_RSOM
272
#define CEC_FLAG_REOM  CEC_CSR_REOM
273
#define CEC_FLAG_RERR  CEC_CSR_RERR
274
#define CEC_FLAG_RBTF  CEC_CSR_RBTF
275
/**
276
  * @}
277
  */
278
 
279
/**
280
  * @}
281
  */
282
 
283
/* Exported macros -----------------------------------------------------------*/
284
/** @defgroup CEC_Exported_Macros CEC Exported Macros
285
  * @{
286
  */
287
 
288
/** @brief  Reset CEC handle gstate & RxState
289
  * @param  __HANDLE__ CEC handle.
290
  * @retval None
291
  */
292
#if (USE_HAL_CEC_REGISTER_CALLBACKS == 1)
293
#define __HAL_CEC_RESET_HANDLE_STATE(__HANDLE__) do{                                                   \
294
                                                       (__HANDLE__)->gState = HAL_CEC_STATE_RESET;     \
295
                                                       (__HANDLE__)->RxState = HAL_CEC_STATE_RESET;    \
296
                                                       (__HANDLE__)->MspInitCallback = NULL;           \
297
                                                       (__HANDLE__)->MspDeInitCallback = NULL;         \
298
                                                     } while(0)
299
#else
300
#define __HAL_CEC_RESET_HANDLE_STATE(__HANDLE__) do{                                                   \
301
                                                       (__HANDLE__)->gState = HAL_CEC_STATE_RESET;     \
302
                                                       (__HANDLE__)->RxState = HAL_CEC_STATE_RESET;    \
303
                                                     } while(0)
304
#endif /* USE_HAL_CEC_REGISTER_CALLBACKS */
305
 
306
/** @brief  Checks whether or not the specified CEC interrupt flag is set.
307
  * @param  __HANDLE__ specifies the CEC Handle.
308
  * @param  __FLAG__ specifies the flag to check.
309
  *     @arg CEC_FLAG_TERR: Tx Error
310
  *     @arg CEC_FLAG_TBTRF:Tx Block Transfer Finished
311
  *     @arg CEC_FLAG_RERR: Rx Error
312
  *     @arg CEC_FLAG_RBTF: Rx Block Transfer Finished
313
  * @retval ITStatus
314
  */
315
#define __HAL_CEC_GET_FLAG(__HANDLE__, __FLAG__) READ_BIT((__HANDLE__)->Instance->CSR,(__FLAG__))
316
 
317
/** @brief  Clears the CEC's pending flags.
318
  * @param  __HANDLE__ specifies the CEC Handle.
319
  * @param  __FLAG__ specifies the flag to clear.
320
  *   This parameter can be any combination of the following values:
321
  *     @arg CEC_CSR_TERR: Tx Error
322
  *     @arg CEC_FLAG_TBTRF: Tx Block Transfer Finished
323
  *     @arg CEC_CSR_RERR: Rx Error
324
  *     @arg CEC_CSR_RBTF: Rx Block Transfer Finished
325
  * @retval none
326
  */
327
#define __HAL_CEC_CLEAR_FLAG(__HANDLE__, __FLAG__)                                                                   \
328
  do {                                                                                       \
329
    uint32_t tmp = 0x0U;                                                                     \
330
    tmp = (__HANDLE__)->Instance->CSR & 0x00000002U;                                         \
331
    (__HANDLE__)->Instance->CSR &= (uint32_t)(((~(uint32_t)(__FLAG__)) & 0xFFFFFFFCU) | tmp);\
332
  } while(0U)
333
 
334
/** @brief  Enables the specified CEC interrupt.
335
  * @param  __HANDLE__ specifies the CEC Handle.
336
  * @param  __INTERRUPT__ specifies the CEC interrupt to enable.
337
  *          This parameter can be one of the following values:
338
  *            @arg CEC_IT_IE         : Interrupt Enable.
339
  * @retval none
340
  */
341
#define __HAL_CEC_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BIT((__HANDLE__)->Instance->CFGR, (__INTERRUPT__))
342
 
343
/** @brief  Disables the specified CEC interrupt.
344
  * @param  __HANDLE__ specifies the CEC Handle.
345
  * @param  __INTERRUPT__ specifies the CEC interrupt to disable.
346
  *          This parameter can be one of the following values:
347
  *            @arg CEC_IT_IE         : Interrupt Enable
348
  * @retval none
349
  */
350
#define __HAL_CEC_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BIT((__HANDLE__)->Instance->CFGR, (__INTERRUPT__))
351
 
352
/** @brief  Checks whether or not the specified CEC interrupt is enabled.
353
  * @param  __HANDLE__ specifies the CEC Handle.
354
  * @param  __INTERRUPT__ specifies the CEC interrupt to check.
355
  *          This parameter can be one of the following values:
356
  *            @arg CEC_IT_IE         : Interrupt Enable
357
  * @retval FlagStatus
358
  */
359
#define __HAL_CEC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) READ_BIT((__HANDLE__)->Instance->CFGR, (__INTERRUPT__))
360
 
361
/** @brief  Enables the CEC device
362
  * @param  __HANDLE__ specifies the CEC Handle.
363
  * @retval none
364
  */
365
#define __HAL_CEC_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CFGR, CEC_CFGR_PE)
366
 
367
/** @brief  Disables the CEC device
368
  * @param  __HANDLE__ specifies the CEC Handle.
369
  * @retval none
370
  */
371
#define __HAL_CEC_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CFGR, CEC_CFGR_PE)
372
 
373
/** @brief  Set Transmission Start flag
374
  * @param  __HANDLE__ specifies the CEC Handle.
375
  * @retval none
376
  */
377
#define __HAL_CEC_FIRST_BYTE_TX_SET(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CSR, CEC_CSR_TSOM)
378
 
379
/** @brief  Set Transmission End flag
380
  * @param  __HANDLE__ specifies the CEC Handle.
381
  * @retval none
382
  */
383
#define __HAL_CEC_LAST_BYTE_TX_SET(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CSR, CEC_CSR_TEOM)
384
 
385
/** @brief  Get Transmission Start flag
386
  * @param  __HANDLE__ specifies the CEC Handle.
387
  * @retval FlagStatus
388
  */
389
#define __HAL_CEC_GET_TRANSMISSION_START_FLAG(__HANDLE__) READ_BIT((__HANDLE__)->Instance->CSR, CEC_CSR_TSOM)
390
 
391
/** @brief  Get Transmission End flag
392
  * @param  __HANDLE__ specifies the CEC Handle.
393
  * @retval FlagStatus
394
  */
395
#define __HAL_CEC_GET_TRANSMISSION_END_FLAG(__HANDLE__) READ_BIT((__HANDLE__)->Instance->CSR, CEC_CSR_TEOM)
396
 
397
/** @brief  Clear OAR register
398
  * @param  __HANDLE__ specifies the CEC Handle.
399
  * @retval none
400
  */
401
#define __HAL_CEC_CLEAR_OAR(__HANDLE__)   CLEAR_BIT((__HANDLE__)->Instance->OAR, CEC_OAR_OA)
402
 
403
/** @brief  Set OAR register
404
  * @param  __HANDLE__ specifies the CEC Handle.
405
  * @param  __ADDRESS__ Own Address value.
406
  * @retval none
407
  */
408
#define __HAL_CEC_SET_OAR(__HANDLE__,__ADDRESS__) MODIFY_REG((__HANDLE__)->Instance->OAR, CEC_OAR_OA, (__ADDRESS__));
409
 
410
/**
411
  * @}
412
  */
413
 
414
/* Exported functions --------------------------------------------------------*/
415
/** @addtogroup CEC_Exported_Functions CEC Exported Functions
416
  * @{
417
  */
418
 
419
/** @addtogroup CEC_Exported_Functions_Group1 Initialization and de-initialization functions
420
  *  @brief    Initialization and Configuration functions
421
  * @{
422
  */
423
/* Initialization and de-initialization functions  ****************************/
424
HAL_StatusTypeDef HAL_CEC_Init(CEC_HandleTypeDef *hcec);
425
HAL_StatusTypeDef HAL_CEC_DeInit(CEC_HandleTypeDef *hcec);
426
HAL_StatusTypeDef HAL_CEC_SetDeviceAddress(CEC_HandleTypeDef *hcec, uint16_t CEC_OwnAddress);
427
void HAL_CEC_MspInit(CEC_HandleTypeDef *hcec);
428
void HAL_CEC_MspDeInit(CEC_HandleTypeDef *hcec);
429
 
430
#if (USE_HAL_CEC_REGISTER_CALLBACKS == 1)
431
HAL_StatusTypeDef HAL_CEC_RegisterCallback(CEC_HandleTypeDef *hcec, HAL_CEC_CallbackIDTypeDef CallbackID,
432
                                           pCEC_CallbackTypeDef pCallback);
433
HAL_StatusTypeDef HAL_CEC_UnRegisterCallback(CEC_HandleTypeDef *hcec, HAL_CEC_CallbackIDTypeDef CallbackID);
434
 
435
HAL_StatusTypeDef HAL_CEC_RegisterRxCpltCallback(CEC_HandleTypeDef *hcec, pCEC_RxCallbackTypeDef pCallback);
436
HAL_StatusTypeDef HAL_CEC_UnRegisterRxCpltCallback(CEC_HandleTypeDef *hcec);
437
#endif /* USE_HAL_CEC_REGISTER_CALLBACKS */
438
/**
439
  * @}
440
  */
441
 
442
/** @addtogroup CEC_Exported_Functions_Group2 Input and Output operation functions
443
  *  @brief CEC Transmit/Receive functions
444
  * @{
445
  */
446
/* I/O operation functions  ***************************************************/
447
HAL_StatusTypeDef HAL_CEC_Transmit_IT(CEC_HandleTypeDef *hcec, uint8_t InitiatorAddress, uint8_t DestinationAddress,
448
                                      const uint8_t *pData, uint32_t Size);
449
uint32_t HAL_CEC_GetLastReceivedFrameSize(const CEC_HandleTypeDef *hcec);
450
void HAL_CEC_ChangeRxBuffer(CEC_HandleTypeDef *hcec, uint8_t *Rxbuffer);
451
void HAL_CEC_IRQHandler(CEC_HandleTypeDef *hcec);
452
void HAL_CEC_TxCpltCallback(CEC_HandleTypeDef *hcec);
453
void HAL_CEC_RxCpltCallback(CEC_HandleTypeDef *hcec, uint32_t RxFrameSize);
454
void HAL_CEC_ErrorCallback(CEC_HandleTypeDef *hcec);
455
/**
456
  * @}
457
  */
458
 
459
/** @defgroup CEC_Exported_Functions_Group3 Peripheral Control functions
460
  *  @brief   CEC control functions
461
  * @{
462
  */
463
/* Peripheral State functions  ************************************************/
464
HAL_CEC_StateTypeDef HAL_CEC_GetState(const CEC_HandleTypeDef *hcec);
465
uint32_t HAL_CEC_GetError(const CEC_HandleTypeDef *hcec);
466
/**
467
  * @}
468
  */
469
 
470
/**
471
  * @}
472
  */
473
 
474
/* Private types -------------------------------------------------------------*/
475
/** @defgroup CEC_Private_Types CEC Private Types
476
  * @{
477
  */
478
 
479
/**
480
  * @}
481
  */
482
 
483
/* Private variables ---------------------------------------------------------*/
484
/** @defgroup CEC_Private_Variables CEC Private Variables
485
  * @{
486
  */
487
 
488
/**
489
  * @}
490
  */
491
 
492
/* Private constants ---------------------------------------------------------*/
493
/** @defgroup CEC_Private_Constants CEC Private Constants
494
  * @{
495
  */
496
 
497
/**
498
  * @}
499
  */
500
 
501
/* Private macros ------------------------------------------------------------*/
502
/** @defgroup CEC_Private_Macros CEC Private Macros
503
  * @{
504
  */
505
#define IS_CEC_BIT_TIMING_ERROR_MODE(MODE) (((MODE) == CEC_BIT_TIMING_ERROR_MODE_STANDARD) || \
506
                                            ((MODE) == CEC_BIT_TIMING_ERROR_MODE_ERRORFREE))
507
 
508
#define IS_CEC_BIT_PERIOD_ERROR_MODE(MODE) (((MODE) == CEC_BIT_PERIOD_ERROR_MODE_STANDARD) || \
509
                                            ((MODE) == CEC_BIT_PERIOD_ERROR_MODE_FLEXIBLE))
510
 
511
/** @brief Check CEC message size.
512
  *       The message size is the payload size: without counting the header,
513
  *       it varies from 0 byte (ping operation, one header only, no payload) to
514
  *       15 bytes (1 opcode and up to 14 operands following the header).
515
  * @param  __SIZE__ CEC message size.
516
  * @retval Test result (TRUE or FALSE).
517
  */
518
#define IS_CEC_MSGSIZE(__SIZE__) ((__SIZE__) <= 0x10U)
519
 
520
/** @brief Check CEC device Own Address Register (OAR) setting.
521
  * @param  __ADDRESS__ CEC own address.
522
  * @retval Test result (TRUE or FALSE).
523
  */
524
#define IS_CEC_OWN_ADDRESS(__ADDRESS__) ((__ADDRESS__) <= 0x0000000FU)
525
 
526
/** @brief Check CEC initiator or destination logical address setting.
527
  *        Initiator and destination addresses are coded over 4 bits.
528
  * @param  __ADDRESS__ CEC initiator or logical address.
529
  * @retval Test result (TRUE or FALSE).
530
  */
531
#define IS_CEC_ADDRESS(__ADDRESS__) ((__ADDRESS__) <= 0x0000000FU)
532
/**
533
  * @}
534
  */
535
/* Private functions ---------------------------------------------------------*/
536
/** @defgroup CEC_Private_Functions CEC Private Functions
537
  * @{
538
  */
539
 
540
/**
541
  * @}
542
  */
543
 
544
/**
545
  * @}
546
  */
547
 
548
/**
549
  * @}
550
  */
551
 
552
#endif /* CEC */
553
 
554
#ifdef __cplusplus
555
}
556
#endif
557
 
558
#endif /* __STM32F1xx_HAL_CEC_H */
559