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:
Thu Aug 20 10:45:13 2015 +0100
Revision:
613:bc40b8d2aec4
Parent:
532:fe11edbda85c
Synchronized with git revision 92ca8c7b60a283b6bb60eb65b183dac1599f0ade

Full URL: https://github.com/mbedmicro/mbed/commit/92ca8c7b60a283b6bb60eb65b183dac1599f0ade/

Nordic: update application start address in GCC linker script

Who changed what in which revision?

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