mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Sep 28 14:00:11 2015 +0100
Revision:
632:7687fb9c4f91
Parent:
385:be64abf45658
Child:
634:ac7d6880524d
Synchronized with git revision f7ce4ed029cc611121464252ff28d5e8beb895b0

Full URL: https://github.com/mbedmicro/mbed/commit/f7ce4ed029cc611121464252ff28d5e8beb895b0/

NUCLEO_F303K8 - add support of the STM32F303K8

Who changed what in which revision?

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