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:
Fri Aug 14 13:15:17 2015 +0100
Revision:
610:813dcc80987e
Parent:
573:ad23fe03a082
Synchronized with git revision 6d84db41c6833e0b9b024741eb0616a5f62d5599

Full URL: https://github.com/mbedmicro/mbed/commit/6d84db41c6833e0b9b024741eb0616a5f62d5599/

DISCO_F746NG - Improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 573:ad23fe03a082 1 /**
mbed_official 573:ad23fe03a082 2 ******************************************************************************
mbed_official 573:ad23fe03a082 3 * @file stm32f7xx_hal_cec.h
mbed_official 573:ad23fe03a082 4 * @author MCD Application Team
mbed_official 610:813dcc80987e 5 * @version V1.0.1
mbed_official 610:813dcc80987e 6 * @date 25-June-2015
mbed_official 573:ad23fe03a082 7 * @brief Header file of CEC HAL module.
mbed_official 573:ad23fe03a082 8 ******************************************************************************
mbed_official 573:ad23fe03a082 9 * @attention
mbed_official 573:ad23fe03a082 10 *
mbed_official 573:ad23fe03a082 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 573:ad23fe03a082 12 *
mbed_official 573:ad23fe03a082 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 573:ad23fe03a082 14 * are permitted provided that the following conditions are met:
mbed_official 573:ad23fe03a082 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 573:ad23fe03a082 16 * this list of conditions and the following disclaimer.
mbed_official 573:ad23fe03a082 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 573:ad23fe03a082 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 573:ad23fe03a082 19 * and/or other materials provided with the distribution.
mbed_official 573:ad23fe03a082 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 573:ad23fe03a082 21 * may be used to endorse or promote products derived from this software
mbed_official 573:ad23fe03a082 22 * without specific prior written permission.
mbed_official 573:ad23fe03a082 23 *
mbed_official 573:ad23fe03a082 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 573:ad23fe03a082 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 573:ad23fe03a082 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 573:ad23fe03a082 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 573:ad23fe03a082 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 573:ad23fe03a082 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 573:ad23fe03a082 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 573:ad23fe03a082 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 573:ad23fe03a082 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 573:ad23fe03a082 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 573:ad23fe03a082 34 *
mbed_official 573:ad23fe03a082 35 ******************************************************************************
mbed_official 573:ad23fe03a082 36 */
mbed_official 573:ad23fe03a082 37
mbed_official 573:ad23fe03a082 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 573:ad23fe03a082 39 #ifndef __STM32F7xx_HAL_CEC_H
mbed_official 573:ad23fe03a082 40 #define __STM32F7xx_HAL_CEC_H
mbed_official 573:ad23fe03a082 41
mbed_official 573:ad23fe03a082 42 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 43 extern "C" {
mbed_official 573:ad23fe03a082 44 #endif
mbed_official 573:ad23fe03a082 45
mbed_official 573:ad23fe03a082 46 /* Includes ------------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 47 #include "stm32f7xx_hal_def.h"
mbed_official 573:ad23fe03a082 48
mbed_official 573:ad23fe03a082 49 /** @addtogroup STM32F7xx_HAL_Driver
mbed_official 573:ad23fe03a082 50 * @{
mbed_official 573:ad23fe03a082 51 */
mbed_official 573:ad23fe03a082 52
mbed_official 573:ad23fe03a082 53 /** @addtogroup CEC
mbed_official 573:ad23fe03a082 54 * @{
mbed_official 573:ad23fe03a082 55 */
mbed_official 573:ad23fe03a082 56
mbed_official 573:ad23fe03a082 57 /* Exported types ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 58 /** @defgroup CEC_Exported_Types CEC Exported Types
mbed_official 573:ad23fe03a082 59 * @{
mbed_official 573:ad23fe03a082 60 */
mbed_official 573:ad23fe03a082 61
mbed_official 573:ad23fe03a082 62 /**
mbed_official 573:ad23fe03a082 63 * @brief CEC Init Structure definition
mbed_official 573:ad23fe03a082 64 */
mbed_official 573:ad23fe03a082 65 typedef struct
mbed_official 573:ad23fe03a082 66 {
mbed_official 573:ad23fe03a082 67 uint32_t SignalFreeTime; /*!< Set SFT field, specifies the Signal Free Time.
mbed_official 573:ad23fe03a082 68 It can be one of @ref CEC_Signal_Free_Time
mbed_official 573:ad23fe03a082 69 and belongs to the set {0,...,7} where
mbed_official 573:ad23fe03a082 70 0x0 is the default configuration
mbed_official 573:ad23fe03a082 71 else means 0.5 + (SignalFreeTime - 1) nominal data bit periods */
mbed_official 573:ad23fe03a082 72
mbed_official 573:ad23fe03a082 73 uint32_t Tolerance; /*!< Set RXTOL bit, specifies the tolerance accepted on the received waveforms,
mbed_official 573:ad23fe03a082 74 it can be a value of @ref CEC_Tolerance : it is either CEC_STANDARD_TOLERANCE
mbed_official 573:ad23fe03a082 75 or CEC_EXTENDED_TOLERANCE */
mbed_official 573:ad23fe03a082 76
mbed_official 573:ad23fe03a082 77 uint32_t BRERxStop; /*!< Set BRESTP bit @ref CEC_BRERxStop : specifies whether or not a Bit Rising Error stops the reception.
mbed_official 573:ad23fe03a082 78 CEC_NO_RX_STOP_ON_BRE: reception is not stopped.
mbed_official 573:ad23fe03a082 79 CEC_RX_STOP_ON_BRE: reception is stopped. */
mbed_official 573:ad23fe03a082 80
mbed_official 573:ad23fe03a082 81 uint32_t BREErrorBitGen; /*!< Set BREGEN bit @ref CEC_BREErrorBitGen : specifies whether or not an Error-Bit is generated on the
mbed_official 573:ad23fe03a082 82 CEC line upon Bit Rising Error detection.
mbed_official 573:ad23fe03a082 83 CEC_BRE_ERRORBIT_NO_GENERATION: no error-bit generation.
mbed_official 573:ad23fe03a082 84 CEC_BRE_ERRORBIT_GENERATION: error-bit generation if BRESTP is set. */
mbed_official 573:ad23fe03a082 85
mbed_official 573:ad23fe03a082 86 uint32_t LBPEErrorBitGen; /*!< Set LBPEGEN bit @ref CEC_LBPEErrorBitGen : specifies whether or not an Error-Bit is generated on the
mbed_official 573:ad23fe03a082 87 CEC line upon Long Bit Period Error detection.
mbed_official 573:ad23fe03a082 88 CEC_LBPE_ERRORBIT_NO_GENERATION: no error-bit generation.
mbed_official 573:ad23fe03a082 89 CEC_LBPE_ERRORBIT_GENERATION: error-bit generation. */
mbed_official 573:ad23fe03a082 90
mbed_official 573:ad23fe03a082 91 uint32_t BroadcastMsgNoErrorBitGen; /*!< Set BRDNOGEN bit @ref CEC_BroadCastMsgErrorBitGen : allows to avoid an Error-Bit generation on the CEC line
mbed_official 573:ad23fe03a082 92 upon an error detected on a broadcast message.
mbed_official 573:ad23fe03a082 93
mbed_official 573:ad23fe03a082 94 It supersedes BREGEN and LBPEGEN bits for a broadcast message error handling. It can take two values:
mbed_official 573:ad23fe03a082 95
mbed_official 573:ad23fe03a082 96 1) CEC_BROADCASTERROR_ERRORBIT_GENERATION.
mbed_official 573:ad23fe03a082 97 a) BRE detection: error-bit generation on the CEC line if BRESTP=CEC_RX_STOP_ON_BRE
mbed_official 573:ad23fe03a082 98 and BREGEN=CEC_BRE_ERRORBIT_NO_GENERATION.
mbed_official 573:ad23fe03a082 99 b) LBPE detection: error-bit generation on the CEC line
mbed_official 573:ad23fe03a082 100 if LBPGEN=CEC_LBPE_ERRORBIT_NO_GENERATION.
mbed_official 573:ad23fe03a082 101
mbed_official 573:ad23fe03a082 102 2) CEC_BROADCASTERROR_NO_ERRORBIT_GENERATION.
mbed_official 573:ad23fe03a082 103 no error-bit generation in case neither a) nor b) are satisfied. Additionally,
mbed_official 573:ad23fe03a082 104 there is no error-bit generation in case of Short Bit Period Error detection in
mbed_official 573:ad23fe03a082 105 a broadcast message while LSTN bit is set. */
mbed_official 573:ad23fe03a082 106
mbed_official 573:ad23fe03a082 107 uint32_t SignalFreeTimeOption; /*!< Set SFTOP bit @ref CEC_SFT_Option : specifies when SFT timer starts.
mbed_official 573:ad23fe03a082 108 CEC_SFT_START_ON_TXSOM SFT: timer starts when TXSOM is set by software.
mbed_official 573:ad23fe03a082 109 CEC_SFT_START_ON_TX_RX_END: SFT timer starts automatically at the end of message transmission/reception. */
mbed_official 573:ad23fe03a082 110
mbed_official 573:ad23fe03a082 111 uint32_t OwnAddress; /*!< Set OAR field, specifies CEC device address within a 15-bit long field */
mbed_official 573:ad23fe03a082 112
mbed_official 573:ad23fe03a082 113 uint32_t ListenMode; /*!< Set LSTN bit @ref CEC_Listening_Mode : specifies device listening mode. It can take two values:
mbed_official 573:ad23fe03a082 114
mbed_official 573:ad23fe03a082 115 CEC_REDUCED_LISTENING_MODE: CEC peripheral receives only message addressed to its
mbed_official 573:ad23fe03a082 116 own address (OAR). Messages addressed to different destination are ignored.
mbed_official 573:ad23fe03a082 117 Broadcast messages are always received.
mbed_official 573:ad23fe03a082 118
mbed_official 573:ad23fe03a082 119 CEC_FULL_LISTENING_MODE: CEC peripheral receives messages addressed to its own
mbed_official 573:ad23fe03a082 120 address (OAR) with positive acknowledge. Messages addressed to different destination
mbed_official 573:ad23fe03a082 121 are received, but without interfering with the CEC bus: no acknowledge sent. */
mbed_official 573:ad23fe03a082 122
mbed_official 573:ad23fe03a082 123 uint8_t InitiatorAddress; /* Initiator address (source logical address, sent in each header) */
mbed_official 573:ad23fe03a082 124
mbed_official 573:ad23fe03a082 125 }CEC_InitTypeDef;
mbed_official 573:ad23fe03a082 126
mbed_official 573:ad23fe03a082 127 /**
mbed_official 573:ad23fe03a082 128 * @brief HAL CEC State structures definition
mbed_official 573:ad23fe03a082 129 */
mbed_official 573:ad23fe03a082 130 typedef enum
mbed_official 573:ad23fe03a082 131 {
mbed_official 573:ad23fe03a082 132 HAL_CEC_STATE_RESET = 0x00, /*!< Peripheral Reset state */
mbed_official 573:ad23fe03a082 133 HAL_CEC_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 573:ad23fe03a082 134 HAL_CEC_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 573:ad23fe03a082 135 HAL_CEC_STATE_BUSY_TX = 0x03, /*!< Data Transmission process is ongoing */
mbed_official 573:ad23fe03a082 136 HAL_CEC_STATE_BUSY_RX = 0x04, /*!< Data Reception process is ongoing */
mbed_official 573:ad23fe03a082 137 HAL_CEC_STATE_STANDBY_RX = 0x05, /*!< IP ready to receive, doesn't prevent IP to transmit */
mbed_official 573:ad23fe03a082 138 HAL_CEC_STATE_TIMEOUT = 0x06, /*!< Timeout state */
mbed_official 573:ad23fe03a082 139 HAL_CEC_STATE_ERROR = 0x07 /*!< State Error */
mbed_official 573:ad23fe03a082 140 }HAL_CEC_StateTypeDef;
mbed_official 573:ad23fe03a082 141
mbed_official 573:ad23fe03a082 142 /**
mbed_official 573:ad23fe03a082 143 * @brief CEC handle Structure definition
mbed_official 573:ad23fe03a082 144 */
mbed_official 573:ad23fe03a082 145 typedef struct
mbed_official 573:ad23fe03a082 146 {
mbed_official 573:ad23fe03a082 147 CEC_TypeDef *Instance; /* CEC registers base address */
mbed_official 573:ad23fe03a082 148
mbed_official 573:ad23fe03a082 149 CEC_InitTypeDef Init; /* CEC communication parameters */
mbed_official 573:ad23fe03a082 150
mbed_official 573:ad23fe03a082 151 uint8_t *pTxBuffPtr; /* Pointer to CEC Tx transfer Buffer */
mbed_official 573:ad23fe03a082 152
mbed_official 573:ad23fe03a082 153 uint16_t TxXferCount; /* CEC Tx Transfer Counter */
mbed_official 573:ad23fe03a082 154
mbed_official 573:ad23fe03a082 155 uint8_t *pRxBuffPtr; /* Pointer to CEC Rx transfer Buffer */
mbed_official 573:ad23fe03a082 156
mbed_official 573:ad23fe03a082 157 uint16_t RxXferSize; /* CEC Rx Transfer size, 0: header received only */
mbed_official 573:ad23fe03a082 158
mbed_official 573:ad23fe03a082 159 uint32_t ErrorCode; /* For errors handling purposes, copy of ISR register
mbed_official 573:ad23fe03a082 160 in case error is reported */
mbed_official 573:ad23fe03a082 161
mbed_official 573:ad23fe03a082 162 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 573:ad23fe03a082 163
mbed_official 573:ad23fe03a082 164 HAL_CEC_StateTypeDef State; /* CEC communication state */
mbed_official 573:ad23fe03a082 165
mbed_official 573:ad23fe03a082 166 }CEC_HandleTypeDef;
mbed_official 573:ad23fe03a082 167 /**
mbed_official 573:ad23fe03a082 168 * @}
mbed_official 573:ad23fe03a082 169 */
mbed_official 573:ad23fe03a082 170
mbed_official 573:ad23fe03a082 171 /* Exported constants --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 172 /** @defgroup CEC_Exported_Constants CEC Exported Constants
mbed_official 573:ad23fe03a082 173 * @{
mbed_official 573:ad23fe03a082 174 */
mbed_official 573:ad23fe03a082 175
mbed_official 573:ad23fe03a082 176 /** @defgroup CEC_Error_Code CEC Error Code
mbed_official 573:ad23fe03a082 177 * @{
mbed_official 573:ad23fe03a082 178 */
mbed_official 573:ad23fe03a082 179 #define HAL_CEC_ERROR_NONE (uint32_t) 0x0 /*!< no error */
mbed_official 573:ad23fe03a082 180 #define HAL_CEC_ERROR_RXOVR CEC_ISR_RXOVR /*!< CEC Rx-Overrun */
mbed_official 573:ad23fe03a082 181 #define HAL_CEC_ERROR_BRE CEC_ISR_BRE /*!< CEC Rx Bit Rising Error */
mbed_official 573:ad23fe03a082 182 #define HAL_CEC_ERROR_SBPE CEC_ISR_SBPE /*!< CEC Rx Short Bit period Error */
mbed_official 573:ad23fe03a082 183 #define HAL_CEC_ERROR_LBPE CEC_ISR_LBPE /*!< CEC Rx Long Bit period Error */
mbed_official 573:ad23fe03a082 184 #define HAL_CEC_ERROR_RXACKE CEC_ISR_RXACKE /*!< CEC Rx Missing Acknowledge */
mbed_official 573:ad23fe03a082 185 #define HAL_CEC_ERROR_ARBLST CEC_ISR_ARBLST /*!< CEC Arbitration Lost */
mbed_official 573:ad23fe03a082 186 #define HAL_CEC_ERROR_TXUDR CEC_ISR_TXUDR /*!< CEC Tx-Buffer Underrun */
mbed_official 573:ad23fe03a082 187 #define HAL_CEC_ERROR_TXERR CEC_ISR_TXERR /*!< CEC Tx-Error */
mbed_official 573:ad23fe03a082 188 #define HAL_CEC_ERROR_TXACKE CEC_ISR_TXACKE /*!< CEC Tx Missing Acknowledge */
mbed_official 573:ad23fe03a082 189 /**
mbed_official 573:ad23fe03a082 190 * @}
mbed_official 573:ad23fe03a082 191 */
mbed_official 573:ad23fe03a082 192
mbed_official 573:ad23fe03a082 193 /** @defgroup CEC_Signal_Free_Time CEC Signal Free Time setting parameter
mbed_official 573:ad23fe03a082 194 * @{
mbed_official 573:ad23fe03a082 195 */
mbed_official 573:ad23fe03a082 196 #define CEC_DEFAULT_SFT ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 197 #define CEC_0_5_BITPERIOD_SFT ((uint32_t)0x00000001)
mbed_official 573:ad23fe03a082 198 #define CEC_1_5_BITPERIOD_SFT ((uint32_t)0x00000002)
mbed_official 573:ad23fe03a082 199 #define CEC_2_5_BITPERIOD_SFT ((uint32_t)0x00000003)
mbed_official 573:ad23fe03a082 200 #define CEC_3_5_BITPERIOD_SFT ((uint32_t)0x00000004)
mbed_official 573:ad23fe03a082 201 #define CEC_4_5_BITPERIOD_SFT ((uint32_t)0x00000005)
mbed_official 573:ad23fe03a082 202 #define CEC_5_5_BITPERIOD_SFT ((uint32_t)0x00000006)
mbed_official 573:ad23fe03a082 203 #define CEC_6_5_BITPERIOD_SFT ((uint32_t)0x00000007)
mbed_official 573:ad23fe03a082 204 /**
mbed_official 573:ad23fe03a082 205 * @}
mbed_official 573:ad23fe03a082 206 */
mbed_official 573:ad23fe03a082 207
mbed_official 573:ad23fe03a082 208 /** @defgroup CEC_Tolerance CEC Receiver Tolerance
mbed_official 573:ad23fe03a082 209 * @{
mbed_official 573:ad23fe03a082 210 */
mbed_official 573:ad23fe03a082 211 #define CEC_STANDARD_TOLERANCE ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 212 #define CEC_EXTENDED_TOLERANCE ((uint32_t)CEC_CFGR_RXTOL)
mbed_official 573:ad23fe03a082 213 /**
mbed_official 573:ad23fe03a082 214 * @}
mbed_official 573:ad23fe03a082 215 */
mbed_official 573:ad23fe03a082 216
mbed_official 573:ad23fe03a082 217 /** @defgroup CEC_BRERxStop CEC Reception Stop on Error
mbed_official 573:ad23fe03a082 218 * @{
mbed_official 573:ad23fe03a082 219 */
mbed_official 573:ad23fe03a082 220 #define CEC_NO_RX_STOP_ON_BRE ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 221 #define CEC_RX_STOP_ON_BRE ((uint32_t)CEC_CFGR_BRESTP)
mbed_official 573:ad23fe03a082 222 /**
mbed_official 573:ad23fe03a082 223 * @}
mbed_official 573:ad23fe03a082 224 */
mbed_official 573:ad23fe03a082 225
mbed_official 573:ad23fe03a082 226 /** @defgroup CEC_BREErrorBitGen CEC Error Bit Generation if Bit Rise Error reported
mbed_official 573:ad23fe03a082 227 * @{
mbed_official 573:ad23fe03a082 228 */
mbed_official 573:ad23fe03a082 229 #define CEC_BRE_ERRORBIT_NO_GENERATION ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 230 #define CEC_BRE_ERRORBIT_GENERATION ((uint32_t)CEC_CFGR_BREGEN)
mbed_official 573:ad23fe03a082 231 /**
mbed_official 573:ad23fe03a082 232 * @}
mbed_official 573:ad23fe03a082 233 */
mbed_official 573:ad23fe03a082 234
mbed_official 573:ad23fe03a082 235 /** @defgroup CEC_LBPEErrorBitGen CEC Error Bit Generation if Long Bit Period Error reported
mbed_official 573:ad23fe03a082 236 * @{
mbed_official 573:ad23fe03a082 237 */
mbed_official 573:ad23fe03a082 238 #define CEC_LBPE_ERRORBIT_NO_GENERATION ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 239 #define CEC_LBPE_ERRORBIT_GENERATION ((uint32_t)CEC_CFGR_LBPEGEN)
mbed_official 573:ad23fe03a082 240 /**
mbed_official 573:ad23fe03a082 241 * @}
mbed_official 573:ad23fe03a082 242 */
mbed_official 573:ad23fe03a082 243
mbed_official 573:ad23fe03a082 244 /** @defgroup CEC_BroadCastMsgErrorBitGen CEC Error Bit Generation on Broadcast message
mbed_official 573:ad23fe03a082 245 * @{
mbed_official 573:ad23fe03a082 246 */
mbed_official 573:ad23fe03a082 247 #define CEC_BROADCASTERROR_ERRORBIT_GENERATION ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 248 #define CEC_BROADCASTERROR_NO_ERRORBIT_GENERATION ((uint32_t)CEC_CFGR_BRDNOGEN)
mbed_official 573:ad23fe03a082 249 /**
mbed_official 573:ad23fe03a082 250 * @}
mbed_official 573:ad23fe03a082 251 */
mbed_official 573:ad23fe03a082 252
mbed_official 573:ad23fe03a082 253 /** @defgroup CEC_SFT_Option CEC Signal Free Time start option
mbed_official 573:ad23fe03a082 254 * @{
mbed_official 573:ad23fe03a082 255 */
mbed_official 573:ad23fe03a082 256 #define CEC_SFT_START_ON_TXSOM ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 257 #define CEC_SFT_START_ON_TX_RX_END ((uint32_t)CEC_CFGR_SFTOPT)
mbed_official 573:ad23fe03a082 258 /**
mbed_official 573:ad23fe03a082 259 * @}
mbed_official 573:ad23fe03a082 260 */
mbed_official 573:ad23fe03a082 261
mbed_official 573:ad23fe03a082 262 /** @defgroup CEC_Listening_Mode CEC Listening mode option
mbed_official 573:ad23fe03a082 263 * @{
mbed_official 573:ad23fe03a082 264 */
mbed_official 573:ad23fe03a082 265 #define CEC_REDUCED_LISTENING_MODE ((uint32_t)0x00000000)
mbed_official 573:ad23fe03a082 266 #define CEC_FULL_LISTENING_MODE ((uint32_t)CEC_CFGR_LSTN)
mbed_official 573:ad23fe03a082 267 /**
mbed_official 573:ad23fe03a082 268 * @}
mbed_official 573:ad23fe03a082 269 */
mbed_official 573:ad23fe03a082 270
mbed_official 573:ad23fe03a082 271 /** @defgroup CEC_OAR_Position CEC Device Own Address position in CEC CFGR register
mbed_official 573:ad23fe03a082 272 * @{
mbed_official 573:ad23fe03a082 273 */
mbed_official 573:ad23fe03a082 274 #define CEC_CFGR_OAR_LSB_POS ((uint32_t) 16)
mbed_official 573:ad23fe03a082 275 /**
mbed_official 573:ad23fe03a082 276 * @}
mbed_official 573:ad23fe03a082 277 */
mbed_official 573:ad23fe03a082 278
mbed_official 573:ad23fe03a082 279 /** @defgroup CEC_Initiator_Position CEC Initiator logical address position in message header
mbed_official 573:ad23fe03a082 280 * @{
mbed_official 573:ad23fe03a082 281 */
mbed_official 573:ad23fe03a082 282 #define CEC_INITIATOR_LSB_POS ((uint32_t) 4)
mbed_official 573:ad23fe03a082 283 /**
mbed_official 573:ad23fe03a082 284 * @}
mbed_official 573:ad23fe03a082 285 */
mbed_official 573:ad23fe03a082 286
mbed_official 573:ad23fe03a082 287 /** @defgroup CEC_Interrupts_Definitions CEC Interrupts definition
mbed_official 573:ad23fe03a082 288 * @{
mbed_official 573:ad23fe03a082 289 */
mbed_official 573:ad23fe03a082 290 #define CEC_IT_TXACKE CEC_IER_TXACKEIE
mbed_official 573:ad23fe03a082 291 #define CEC_IT_TXERR CEC_IER_TXERRIE
mbed_official 573:ad23fe03a082 292 #define CEC_IT_TXUDR CEC_IER_TXUDRIE
mbed_official 573:ad23fe03a082 293 #define CEC_IT_TXEND CEC_IER_TXENDIE
mbed_official 573:ad23fe03a082 294 #define CEC_IT_TXBR CEC_IER_TXBRIE
mbed_official 573:ad23fe03a082 295 #define CEC_IT_ARBLST CEC_IER_ARBLSTIE
mbed_official 573:ad23fe03a082 296 #define CEC_IT_RXACKE CEC_IER_RXACKEIE
mbed_official 573:ad23fe03a082 297 #define CEC_IT_LBPE CEC_IER_LBPEIE
mbed_official 573:ad23fe03a082 298 #define CEC_IT_SBPE CEC_IER_SBPEIE
mbed_official 573:ad23fe03a082 299 #define CEC_IT_BRE CEC_IER_BREIE
mbed_official 573:ad23fe03a082 300 #define CEC_IT_RXOVR CEC_IER_RXOVRIE
mbed_official 573:ad23fe03a082 301 #define CEC_IT_RXEND CEC_IER_RXENDIE
mbed_official 573:ad23fe03a082 302 #define CEC_IT_RXBR CEC_IER_RXBRIE
mbed_official 573:ad23fe03a082 303 /**
mbed_official 573:ad23fe03a082 304 * @}
mbed_official 573:ad23fe03a082 305 */
mbed_official 573:ad23fe03a082 306
mbed_official 573:ad23fe03a082 307 /** @defgroup CEC_Flags_Definitions CEC Flags definition
mbed_official 573:ad23fe03a082 308 * @{
mbed_official 573:ad23fe03a082 309 */
mbed_official 573:ad23fe03a082 310 #define CEC_FLAG_TXACKE CEC_ISR_TXACKE
mbed_official 573:ad23fe03a082 311 #define CEC_FLAG_TXERR CEC_ISR_TXERR
mbed_official 573:ad23fe03a082 312 #define CEC_FLAG_TXUDR CEC_ISR_TXUDR
mbed_official 573:ad23fe03a082 313 #define CEC_FLAG_TXEND CEC_ISR_TXEND
mbed_official 573:ad23fe03a082 314 #define CEC_FLAG_TXBR CEC_ISR_TXBR
mbed_official 573:ad23fe03a082 315 #define CEC_FLAG_ARBLST CEC_ISR_ARBLST
mbed_official 573:ad23fe03a082 316 #define CEC_FLAG_RXACKE CEC_ISR_RXACKE
mbed_official 573:ad23fe03a082 317 #define CEC_FLAG_LBPE CEC_ISR_LBPE
mbed_official 573:ad23fe03a082 318 #define CEC_FLAG_SBPE CEC_ISR_SBPE
mbed_official 573:ad23fe03a082 319 #define CEC_FLAG_BRE CEC_ISR_BRE
mbed_official 573:ad23fe03a082 320 #define CEC_FLAG_RXOVR CEC_ISR_RXOVR
mbed_official 573:ad23fe03a082 321 #define CEC_FLAG_RXEND CEC_ISR_RXEND
mbed_official 573:ad23fe03a082 322 #define CEC_FLAG_RXBR CEC_ISR_RXBR
mbed_official 573:ad23fe03a082 323 /**
mbed_official 573:ad23fe03a082 324 * @}
mbed_official 573:ad23fe03a082 325 */
mbed_official 573:ad23fe03a082 326
mbed_official 573:ad23fe03a082 327 /** @defgroup CEC_ALL_ERROR CEC all RX or TX errors flags
mbed_official 573:ad23fe03a082 328 * @{
mbed_official 573:ad23fe03a082 329 */
mbed_official 573:ad23fe03a082 330 #define CEC_ISR_ALL_ERROR ((uint32_t)CEC_ISR_RXOVR|CEC_ISR_BRE|CEC_ISR_SBPE|CEC_ISR_LBPE|CEC_ISR_RXACKE|\
mbed_official 573:ad23fe03a082 331 CEC_ISR_ARBLST|CEC_ISR_TXUDR|CEC_ISR_TXERR|CEC_ISR_TXACKE)
mbed_official 573:ad23fe03a082 332 /**
mbed_official 573:ad23fe03a082 333 * @}
mbed_official 573:ad23fe03a082 334 */
mbed_official 573:ad23fe03a082 335
mbed_official 573:ad23fe03a082 336 /** @defgroup CEC_IER_ALL_RX CEC all RX errors interrupts enabling flag
mbed_official 573:ad23fe03a082 337 * @{
mbed_official 573:ad23fe03a082 338 */
mbed_official 573:ad23fe03a082 339 #define CEC_IER_RX_ALL_ERR ((uint32_t)CEC_IER_RXACKEIE|CEC_IER_LBPEIE|CEC_IER_SBPEIE|CEC_IER_BREIE|CEC_IER_RXOVRIE)
mbed_official 573:ad23fe03a082 340 /**
mbed_official 573:ad23fe03a082 341 * @}
mbed_official 573:ad23fe03a082 342 */
mbed_official 573:ad23fe03a082 343
mbed_official 573:ad23fe03a082 344 /** @defgroup CEC_IER_ALL_TX CEC all TX errors interrupts enabling flag
mbed_official 573:ad23fe03a082 345 * @{
mbed_official 573:ad23fe03a082 346 */
mbed_official 573:ad23fe03a082 347 #define CEC_IER_TX_ALL_ERR ((uint32_t)CEC_IER_TXACKEIE|CEC_IER_TXERRIE|CEC_IER_TXUDRIE|CEC_IER_ARBLSTIE)
mbed_official 573:ad23fe03a082 348 /**
mbed_official 573:ad23fe03a082 349 * @}
mbed_official 573:ad23fe03a082 350 */
mbed_official 573:ad23fe03a082 351
mbed_official 573:ad23fe03a082 352 /**
mbed_official 573:ad23fe03a082 353 * @}
mbed_official 573:ad23fe03a082 354 */
mbed_official 573:ad23fe03a082 355
mbed_official 573:ad23fe03a082 356 /* Exported macros -----------------------------------------------------------*/
mbed_official 573:ad23fe03a082 357 /** @defgroup CEC_Exported_Macros CEC Exported Macros
mbed_official 573:ad23fe03a082 358 * @{
mbed_official 573:ad23fe03a082 359 */
mbed_official 573:ad23fe03a082 360
mbed_official 573:ad23fe03a082 361 /** @brief Reset CEC handle state
mbed_official 573:ad23fe03a082 362 * @param __HANDLE__: CEC handle.
mbed_official 573:ad23fe03a082 363 * @retval None
mbed_official 573:ad23fe03a082 364 */
mbed_official 573:ad23fe03a082 365 #define __HAL_CEC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_CEC_STATE_RESET)
mbed_official 573:ad23fe03a082 366
mbed_official 573:ad23fe03a082 367 /** @brief Checks whether or not the specified CEC interrupt flag is set.
mbed_official 573:ad23fe03a082 368 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 369 * @param __FLAG__: specifies the flag to check.
mbed_official 573:ad23fe03a082 370 * @arg CEC_FLAG_TXACKE: Tx Missing acknowledge Error
mbed_official 573:ad23fe03a082 371 * @arg CEC_FLAG_TXERR: Tx Error.
mbed_official 573:ad23fe03a082 372 * @arg CEC_FLAG_TXUDR: Tx-Buffer Underrun.
mbed_official 573:ad23fe03a082 373 * @arg CEC_FLAG_TXEND: End of transmission (successful transmission of the last byte).
mbed_official 573:ad23fe03a082 374 * @arg CEC_FLAG_TXBR: Tx-Byte Request.
mbed_official 573:ad23fe03a082 375 * @arg CEC_FLAG_ARBLST: Arbitration Lost
mbed_official 573:ad23fe03a082 376 * @arg CEC_FLAG_RXACKE: Rx-Missing Acknowledge
mbed_official 573:ad23fe03a082 377 * @arg CEC_FLAG_LBPE: Rx Long period Error
mbed_official 573:ad23fe03a082 378 * @arg CEC_FLAG_SBPE: Rx Short period Error
mbed_official 573:ad23fe03a082 379 * @arg CEC_FLAG_BRE: Rx Bit Rising Error
mbed_official 573:ad23fe03a082 380 * @arg CEC_FLAG_RXOVR: Rx Overrun.
mbed_official 573:ad23fe03a082 381 * @arg CEC_FLAG_RXEND: End Of Reception.
mbed_official 573:ad23fe03a082 382 * @arg CEC_FLAG_RXBR: Rx-Byte Received.
mbed_official 573:ad23fe03a082 383 * @retval ITStatus
mbed_official 573:ad23fe03a082 384 */
mbed_official 573:ad23fe03a082 385 #define __HAL_CEC_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR & (__FLAG__))
mbed_official 573:ad23fe03a082 386
mbed_official 573:ad23fe03a082 387 /** @brief Clears the interrupt or status flag when raised (write at 1)
mbed_official 573:ad23fe03a082 388 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 389 * @param __FLAG__: specifies the interrupt/status flag to clear.
mbed_official 573:ad23fe03a082 390 * This parameter can be one of the following values:
mbed_official 573:ad23fe03a082 391 * @arg CEC_FLAG_TXACKE: Tx Missing acknowledge Error
mbed_official 573:ad23fe03a082 392 * @arg CEC_FLAG_TXERR: Tx Error.
mbed_official 573:ad23fe03a082 393 * @arg CEC_FLAG_TXUDR: Tx-Buffer Underrun.
mbed_official 573:ad23fe03a082 394 * @arg CEC_FLAG_TXEND: End of transmission (successful transmission of the last byte).
mbed_official 573:ad23fe03a082 395 * @arg CEC_FLAG_TXBR: Tx-Byte Request.
mbed_official 573:ad23fe03a082 396 * @arg CEC_FLAG_ARBLST: Arbitration Lost
mbed_official 573:ad23fe03a082 397 * @arg CEC_FLAG_RXACKE: Rx-Missing Acknowledge
mbed_official 573:ad23fe03a082 398 * @arg CEC_FLAG_LBPE: Rx Long period Error
mbed_official 573:ad23fe03a082 399 * @arg CEC_FLAG_SBPE: Rx Short period Error
mbed_official 573:ad23fe03a082 400 * @arg CEC_FLAG_BRE: Rx Bit Rising Error
mbed_official 573:ad23fe03a082 401 * @arg CEC_FLAG_RXOVR: Rx Overrun.
mbed_official 573:ad23fe03a082 402 * @arg CEC_FLAG_RXEND: End Of Reception.
mbed_official 573:ad23fe03a082 403 * @arg CEC_FLAG_RXBR: Rx-Byte Received.
mbed_official 573:ad23fe03a082 404 * @retval none
mbed_official 573:ad23fe03a082 405 */
mbed_official 573:ad23fe03a082 406 #define __HAL_CEC_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR |= (__FLAG__))
mbed_official 573:ad23fe03a082 407
mbed_official 573:ad23fe03a082 408 /** @brief Enables the specified CEC interrupt.
mbed_official 573:ad23fe03a082 409 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 410 * @param __INTERRUPT__: specifies the CEC interrupt to enable.
mbed_official 573:ad23fe03a082 411 * This parameter can be one of the following values:
mbed_official 573:ad23fe03a082 412 * @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
mbed_official 573:ad23fe03a082 413 * @arg CEC_IT_TXERR: Tx Error IT Enable
mbed_official 573:ad23fe03a082 414 * @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
mbed_official 573:ad23fe03a082 415 * @arg CEC_IT_TXEND: End of transmission IT Enable
mbed_official 573:ad23fe03a082 416 * @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
mbed_official 573:ad23fe03a082 417 * @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
mbed_official 573:ad23fe03a082 418 * @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
mbed_official 573:ad23fe03a082 419 * @arg CEC_IT_LBPE: Rx Long period Error IT Enable
mbed_official 573:ad23fe03a082 420 * @arg CEC_IT_SBPE: Rx Short period Error IT Enable
mbed_official 573:ad23fe03a082 421 * @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
mbed_official 573:ad23fe03a082 422 * @arg CEC_IT_RXOVR: Rx Overrun IT Enable
mbed_official 573:ad23fe03a082 423 * @arg CEC_IT_RXEND: End Of Reception IT Enable
mbed_official 573:ad23fe03a082 424 * @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
mbed_official 573:ad23fe03a082 425 * @retval none
mbed_official 573:ad23fe03a082 426 */
mbed_official 573:ad23fe03a082 427 #define __HAL_CEC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))
mbed_official 573:ad23fe03a082 428
mbed_official 573:ad23fe03a082 429 /** @brief Disables the specified CEC interrupt.
mbed_official 573:ad23fe03a082 430 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 431 * @param __INTERRUPT__: specifies the CEC interrupt to disable.
mbed_official 573:ad23fe03a082 432 * This parameter can be one of the following values:
mbed_official 573:ad23fe03a082 433 * @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
mbed_official 573:ad23fe03a082 434 * @arg CEC_IT_TXERR: Tx Error IT Enable
mbed_official 573:ad23fe03a082 435 * @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
mbed_official 573:ad23fe03a082 436 * @arg CEC_IT_TXEND: End of transmission IT Enable
mbed_official 573:ad23fe03a082 437 * @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
mbed_official 573:ad23fe03a082 438 * @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
mbed_official 573:ad23fe03a082 439 * @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
mbed_official 573:ad23fe03a082 440 * @arg CEC_IT_LBPE: Rx Long period Error IT Enable
mbed_official 573:ad23fe03a082 441 * @arg CEC_IT_SBPE: Rx Short period Error IT Enable
mbed_official 573:ad23fe03a082 442 * @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
mbed_official 573:ad23fe03a082 443 * @arg CEC_IT_RXOVR: Rx Overrun IT Enable
mbed_official 573:ad23fe03a082 444 * @arg CEC_IT_RXEND: End Of Reception IT Enable
mbed_official 573:ad23fe03a082 445 * @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
mbed_official 573:ad23fe03a082 446 * @retval none
mbed_official 573:ad23fe03a082 447 */
mbed_official 573:ad23fe03a082 448 #define __HAL_CEC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= (~(__INTERRUPT__)))
mbed_official 573:ad23fe03a082 449
mbed_official 573:ad23fe03a082 450 /** @brief Checks whether or not the specified CEC interrupt is enabled.
mbed_official 573:ad23fe03a082 451 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 452 * @param __INTERRUPT__: specifies the CEC interrupt to check.
mbed_official 573:ad23fe03a082 453 * This parameter can be one of the following values:
mbed_official 573:ad23fe03a082 454 * @arg CEC_IT_TXACKE: Tx Missing acknowledge Error IT Enable
mbed_official 573:ad23fe03a082 455 * @arg CEC_IT_TXERR: Tx Error IT Enable
mbed_official 573:ad23fe03a082 456 * @arg CEC_IT_TXUDR: Tx-Buffer Underrun IT Enable
mbed_official 573:ad23fe03a082 457 * @arg CEC_IT_TXEND: End of transmission IT Enable
mbed_official 573:ad23fe03a082 458 * @arg CEC_IT_TXBR: Tx-Byte Request IT Enable
mbed_official 573:ad23fe03a082 459 * @arg CEC_IT_ARBLST: Arbitration Lost IT Enable
mbed_official 573:ad23fe03a082 460 * @arg CEC_IT_RXACKE: Rx-Missing Acknowledge IT Enable
mbed_official 573:ad23fe03a082 461 * @arg CEC_IT_LBPE: Rx Long period Error IT Enable
mbed_official 573:ad23fe03a082 462 * @arg CEC_IT_SBPE: Rx Short period Error IT Enable
mbed_official 573:ad23fe03a082 463 * @arg CEC_IT_BRE: Rx Bit Rising Error IT Enable
mbed_official 573:ad23fe03a082 464 * @arg CEC_IT_RXOVR: Rx Overrun IT Enable
mbed_official 573:ad23fe03a082 465 * @arg CEC_IT_RXEND: End Of Reception IT Enable
mbed_official 573:ad23fe03a082 466 * @arg CEC_IT_RXBR: Rx-Byte Received IT Enable
mbed_official 573:ad23fe03a082 467 * @retval FlagStatus
mbed_official 573:ad23fe03a082 468 */
mbed_official 573:ad23fe03a082 469 #define __HAL_CEC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER & (__INTERRUPT__))
mbed_official 573:ad23fe03a082 470
mbed_official 573:ad23fe03a082 471 /** @brief Enables the CEC device
mbed_official 573:ad23fe03a082 472 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 473 * @retval none
mbed_official 573:ad23fe03a082 474 */
mbed_official 573:ad23fe03a082 475 #define __HAL_CEC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= CEC_CR_CECEN)
mbed_official 573:ad23fe03a082 476
mbed_official 573:ad23fe03a082 477 /** @brief Disables the CEC device
mbed_official 573:ad23fe03a082 478 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 479 * @retval none
mbed_official 573:ad23fe03a082 480 */
mbed_official 573:ad23fe03a082 481 #define __HAL_CEC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~CEC_CR_CECEN)
mbed_official 573:ad23fe03a082 482
mbed_official 573:ad23fe03a082 483 /** @brief Set Transmission Start flag
mbed_official 573:ad23fe03a082 484 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 485 * @retval none
mbed_official 573:ad23fe03a082 486 */
mbed_official 573:ad23fe03a082 487 #define __HAL_CEC_FIRST_BYTE_TX_SET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CEC_CR_TXSOM)
mbed_official 573:ad23fe03a082 488
mbed_official 573:ad23fe03a082 489 /** @brief Set Transmission End flag
mbed_official 573:ad23fe03a082 490 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 491 * @retval none
mbed_official 573:ad23fe03a082 492 * If the CEC message consists of only one byte, TXEOM must be set before of TXSOM.
mbed_official 573:ad23fe03a082 493 */
mbed_official 573:ad23fe03a082 494 #define __HAL_CEC_LAST_BYTE_TX_SET(__HANDLE__) ((__HANDLE__)->Instance->CR |= CEC_CR_TXEOM)
mbed_official 573:ad23fe03a082 495
mbed_official 573:ad23fe03a082 496 /** @brief Get Transmission Start flag
mbed_official 573:ad23fe03a082 497 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 498 * @retval FlagStatus
mbed_official 573:ad23fe03a082 499 */
mbed_official 573:ad23fe03a082 500 #define __HAL_CEC_GET_TRANSMISSION_START_FLAG(__HANDLE__) ((__HANDLE__)->Instance->CR & CEC_CR_TXSOM)
mbed_official 573:ad23fe03a082 501
mbed_official 573:ad23fe03a082 502 /** @brief Get Transmission End flag
mbed_official 573:ad23fe03a082 503 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 504 * @retval FlagStatus
mbed_official 573:ad23fe03a082 505 */
mbed_official 573:ad23fe03a082 506 #define __HAL_CEC_GET_TRANSMISSION_END_FLAG(__HANDLE__) ((__HANDLE__)->Instance->CR & CEC_CR_TXEOM)
mbed_official 573:ad23fe03a082 507
mbed_official 573:ad23fe03a082 508 /** @brief Clear OAR register
mbed_official 573:ad23fe03a082 509 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 510 * @retval none
mbed_official 573:ad23fe03a082 511 */
mbed_official 573:ad23fe03a082 512 #define __HAL_CEC_CLEAR_OAR(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CFGR, CEC_CFGR_OAR)
mbed_official 573:ad23fe03a082 513
mbed_official 573:ad23fe03a082 514 /** @brief Set OAR register (without resetting previously set address in case of multi-address mode)
mbed_official 573:ad23fe03a082 515 * To reset OAR, __HAL_CEC_CLEAR_OAR() needs to be called beforehand
mbed_official 573:ad23fe03a082 516 * @param __HANDLE__: specifies the CEC Handle.
mbed_official 573:ad23fe03a082 517 * @param __ADDRESS__: Own Address value (CEC logical address is identified by bit position)
mbed_official 573:ad23fe03a082 518 * @retval none
mbed_official 573:ad23fe03a082 519 */
mbed_official 573:ad23fe03a082 520 #define __HAL_CEC_SET_OAR(__HANDLE__,__ADDRESS__) SET_BIT((__HANDLE__)->Instance->CFGR, (__ADDRESS__)<< CEC_CFGR_OAR_LSB_POS)
mbed_official 573:ad23fe03a082 521
mbed_official 573:ad23fe03a082 522 /**
mbed_official 573:ad23fe03a082 523 * @}
mbed_official 573:ad23fe03a082 524 */
mbed_official 573:ad23fe03a082 525
mbed_official 573:ad23fe03a082 526 /* Exported functions --------------------------------------------------------*/
mbed_official 573:ad23fe03a082 527 /** @addtogroup CEC_Exported_Functions
mbed_official 573:ad23fe03a082 528 * @{
mbed_official 573:ad23fe03a082 529 */
mbed_official 573:ad23fe03a082 530
mbed_official 573:ad23fe03a082 531 /** @addtogroup CEC_Exported_Functions_Group1
mbed_official 573:ad23fe03a082 532 * @{
mbed_official 573:ad23fe03a082 533 */
mbed_official 573:ad23fe03a082 534 /* Initialization and de-initialization functions ****************************/
mbed_official 573:ad23fe03a082 535 HAL_StatusTypeDef HAL_CEC_Init(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 536 HAL_StatusTypeDef HAL_CEC_DeInit(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 537 void HAL_CEC_MspInit(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 538 void HAL_CEC_MspDeInit(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 539 /**
mbed_official 573:ad23fe03a082 540 * @}
mbed_official 573:ad23fe03a082 541 */
mbed_official 573:ad23fe03a082 542
mbed_official 573:ad23fe03a082 543 /** @addtogroup CEC_Exported_Functions_Group2
mbed_official 573:ad23fe03a082 544 * @{
mbed_official 573:ad23fe03a082 545 */
mbed_official 573:ad23fe03a082 546 /* I/O operation functions ***************************************************/
mbed_official 573:ad23fe03a082 547 HAL_StatusTypeDef HAL_CEC_Transmit(CEC_HandleTypeDef *hcec, uint8_t DestinationAddress, uint8_t *pData, uint32_t Size, uint32_t Timeout);
mbed_official 573:ad23fe03a082 548 HAL_StatusTypeDef HAL_CEC_Receive(CEC_HandleTypeDef *hcec, uint8_t *pData, uint32_t Timeout);
mbed_official 573:ad23fe03a082 549 HAL_StatusTypeDef HAL_CEC_Transmit_IT(CEC_HandleTypeDef *hcec, uint8_t DestinationAddress, uint8_t *pData, uint32_t Size);
mbed_official 573:ad23fe03a082 550 HAL_StatusTypeDef HAL_CEC_Receive_IT(CEC_HandleTypeDef *hcec, uint8_t *pData);
mbed_official 573:ad23fe03a082 551 uint32_t HAL_CEC_GetReceivedFrameSize(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 552 void HAL_CEC_IRQHandler(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 553 void HAL_CEC_TxCpltCallback(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 554 void HAL_CEC_RxCpltCallback(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 555 void HAL_CEC_ErrorCallback(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 556 /**
mbed_official 573:ad23fe03a082 557 * @}
mbed_official 573:ad23fe03a082 558 */
mbed_official 573:ad23fe03a082 559
mbed_official 573:ad23fe03a082 560 /** @addtogroup CEC_Exported_Functions_Group3
mbed_official 573:ad23fe03a082 561 * @{
mbed_official 573:ad23fe03a082 562 */
mbed_official 573:ad23fe03a082 563 /* Peripheral State functions ************************************************/
mbed_official 573:ad23fe03a082 564 HAL_CEC_StateTypeDef HAL_CEC_GetState(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 565 uint32_t HAL_CEC_GetError(CEC_HandleTypeDef *hcec);
mbed_official 573:ad23fe03a082 566 /**
mbed_official 573:ad23fe03a082 567 * @}
mbed_official 573:ad23fe03a082 568 */
mbed_official 573:ad23fe03a082 569
mbed_official 573:ad23fe03a082 570 /**
mbed_official 573:ad23fe03a082 571 * @}
mbed_official 573:ad23fe03a082 572 */
mbed_official 573:ad23fe03a082 573
mbed_official 573:ad23fe03a082 574 /* Private types -------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 575 /** @defgroup CEC_Private_Types CEC Private Types
mbed_official 573:ad23fe03a082 576 * @{
mbed_official 573:ad23fe03a082 577 */
mbed_official 573:ad23fe03a082 578
mbed_official 573:ad23fe03a082 579 /**
mbed_official 573:ad23fe03a082 580 * @}
mbed_official 573:ad23fe03a082 581 */
mbed_official 573:ad23fe03a082 582
mbed_official 573:ad23fe03a082 583 /* Private variables ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 584 /** @defgroup CEC_Private_Variables CEC Private Variables
mbed_official 573:ad23fe03a082 585 * @{
mbed_official 573:ad23fe03a082 586 */
mbed_official 573:ad23fe03a082 587
mbed_official 573:ad23fe03a082 588 /**
mbed_official 573:ad23fe03a082 589 * @}
mbed_official 573:ad23fe03a082 590 */
mbed_official 573:ad23fe03a082 591
mbed_official 573:ad23fe03a082 592 /* Private constants ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 593 /** @defgroup CEC_Private_Constants CEC Private Constants
mbed_official 573:ad23fe03a082 594 * @{
mbed_official 573:ad23fe03a082 595 */
mbed_official 573:ad23fe03a082 596
mbed_official 573:ad23fe03a082 597 /**
mbed_official 573:ad23fe03a082 598 * @}
mbed_official 573:ad23fe03a082 599 */
mbed_official 573:ad23fe03a082 600
mbed_official 573:ad23fe03a082 601 /* Private macros ------------------------------------------------------------*/
mbed_official 573:ad23fe03a082 602 /** @defgroup CEC_Private_Macros CEC Private Macros
mbed_official 573:ad23fe03a082 603 * @{
mbed_official 573:ad23fe03a082 604 */
mbed_official 573:ad23fe03a082 605
mbed_official 573:ad23fe03a082 606 #define IS_CEC_SIGNALFREETIME(__SFT__) ((__SFT__) <= CEC_CFGR_SFT)
mbed_official 573:ad23fe03a082 607
mbed_official 573:ad23fe03a082 608 #define IS_CEC_TOLERANCE(__RXTOL__) (((__RXTOL__) == CEC_STANDARD_TOLERANCE) || \
mbed_official 573:ad23fe03a082 609 ((__RXTOL__) == CEC_EXTENDED_TOLERANCE))
mbed_official 573:ad23fe03a082 610
mbed_official 573:ad23fe03a082 611 #define IS_CEC_BRERXSTOP(__BRERXSTOP__) (((__BRERXSTOP__) == CEC_NO_RX_STOP_ON_BRE) || \
mbed_official 573:ad23fe03a082 612 ((__BRERXSTOP__) == CEC_RX_STOP_ON_BRE))
mbed_official 573:ad23fe03a082 613
mbed_official 573:ad23fe03a082 614 #define IS_CEC_BREERRORBITGEN(__ERRORBITGEN__) (((__ERRORBITGEN__) == CEC_BRE_ERRORBIT_NO_GENERATION) || \
mbed_official 573:ad23fe03a082 615 ((__ERRORBITGEN__) == CEC_BRE_ERRORBIT_GENERATION))
mbed_official 573:ad23fe03a082 616
mbed_official 573:ad23fe03a082 617 #define IS_CEC_LBPEERRORBITGEN(__ERRORBITGEN__) (((__ERRORBITGEN__) == CEC_LBPE_ERRORBIT_NO_GENERATION) || \
mbed_official 573:ad23fe03a082 618 ((__ERRORBITGEN__) == CEC_LBPE_ERRORBIT_GENERATION))
mbed_official 573:ad23fe03a082 619
mbed_official 573:ad23fe03a082 620 #define IS_CEC_BROADCASTERROR_NO_ERRORBIT_GENERATION(__ERRORBITGEN__) (((__ERRORBITGEN__) == CEC_BROADCASTERROR_ERRORBIT_GENERATION) || \
mbed_official 573:ad23fe03a082 621 ((__ERRORBITGEN__) == CEC_BROADCASTERROR_NO_ERRORBIT_GENERATION))
mbed_official 573:ad23fe03a082 622
mbed_official 573:ad23fe03a082 623 #define IS_CEC_SFTOP(__SFTOP__) (((__SFTOP__) == CEC_SFT_START_ON_TXSOM) || \
mbed_official 573:ad23fe03a082 624 ((__SFTOP__) == CEC_SFT_START_ON_TX_RX_END))
mbed_official 573:ad23fe03a082 625
mbed_official 573:ad23fe03a082 626 #define IS_CEC_LISTENING_MODE(__MODE__) (((__MODE__) == CEC_REDUCED_LISTENING_MODE) || \
mbed_official 573:ad23fe03a082 627 ((__MODE__) == CEC_FULL_LISTENING_MODE))
mbed_official 573:ad23fe03a082 628
mbed_official 573:ad23fe03a082 629 /** @brief Check CEC device Own Address Register (OAR) setting.
mbed_official 573:ad23fe03a082 630 * OAR address is written in a 15-bit field within CEC_CFGR register.
mbed_official 573:ad23fe03a082 631 * @param __ADDRESS__: CEC own address.
mbed_official 573:ad23fe03a082 632 * @retval Test result (TRUE or FALSE).
mbed_official 573:ad23fe03a082 633 */
mbed_official 573:ad23fe03a082 634 #define IS_CEC_OAR_ADDRESS(__ADDRESS__) ((__ADDRESS__) <= 0x07FFF)
mbed_official 573:ad23fe03a082 635
mbed_official 573:ad23fe03a082 636 /** @brief Check CEC initiator or destination logical address setting.
mbed_official 573:ad23fe03a082 637 * Initiator and destination addresses are coded over 4 bits.
mbed_official 573:ad23fe03a082 638 * @param __ADDRESS__: CEC initiator or logical address.
mbed_official 573:ad23fe03a082 639 * @retval Test result (TRUE or FALSE).
mbed_official 573:ad23fe03a082 640 */
mbed_official 573:ad23fe03a082 641 #define IS_CEC_ADDRESS(__ADDRESS__) ((__ADDRESS__) <= 0xF)
mbed_official 573:ad23fe03a082 642
mbed_official 573:ad23fe03a082 643 /** @brief Check CEC message size.
mbed_official 573:ad23fe03a082 644 * The message size is the payload size: without counting the header,
mbed_official 573:ad23fe03a082 645 * it varies from 0 byte (ping operation, one header only, no payload) to
mbed_official 573:ad23fe03a082 646 * 15 bytes (1 opcode and up to 14 operands following the header).
mbed_official 573:ad23fe03a082 647 * @param __SIZE__: CEC message size.
mbed_official 573:ad23fe03a082 648 * @retval Test result (TRUE or FALSE).
mbed_official 573:ad23fe03a082 649 */
mbed_official 573:ad23fe03a082 650 #define IS_CEC_MSGSIZE(__SIZE__) ((__SIZE__) <= 0xF)
mbed_official 573:ad23fe03a082 651
mbed_official 573:ad23fe03a082 652 /**
mbed_official 573:ad23fe03a082 653 * @}
mbed_official 573:ad23fe03a082 654 */
mbed_official 573:ad23fe03a082 655
mbed_official 573:ad23fe03a082 656 /* Private functions ---------------------------------------------------------*/
mbed_official 573:ad23fe03a082 657 /** @defgroup CEC_Private_Functions CEC Private Functions
mbed_official 573:ad23fe03a082 658 * @{
mbed_official 573:ad23fe03a082 659 */
mbed_official 573:ad23fe03a082 660
mbed_official 573:ad23fe03a082 661 /**
mbed_official 573:ad23fe03a082 662 * @}
mbed_official 573:ad23fe03a082 663 */
mbed_official 573:ad23fe03a082 664
mbed_official 573:ad23fe03a082 665 /**
mbed_official 573:ad23fe03a082 666 * @}
mbed_official 573:ad23fe03a082 667 */
mbed_official 573:ad23fe03a082 668
mbed_official 573:ad23fe03a082 669 /**
mbed_official 573:ad23fe03a082 670 * @}
mbed_official 573:ad23fe03a082 671 */
mbed_official 573:ad23fe03a082 672
mbed_official 573:ad23fe03a082 673 #ifdef __cplusplus
mbed_official 573:ad23fe03a082 674 }
mbed_official 573:ad23fe03a082 675 #endif
mbed_official 573:ad23fe03a082 676
mbed_official 573:ad23fe03a082 677 #endif /* __STM32F7xx_HAL_CEC_H */
mbed_official 573:ad23fe03a082 678
mbed_official 573:ad23fe03a082 679 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/