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 Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

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

Make it possible to build the core mbed library with yotta

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_fmpi2c.h
mbed_official 532:fe11edbda85c 4 * @author MCD Application Team
mbed_official 532:fe11edbda85c 5 * @version V1.3.0
mbed_official 532:fe11edbda85c 6 * @date 09-March-2015
mbed_official 532:fe11edbda85c 7 * @brief Header file of FMPI2C 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_FMPI2C_H
mbed_official 532:fe11edbda85c 40 #define __STM32F4xx_HAL_FMPI2C_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
mbed_official 532:fe11edbda85c 48 /* Includes ------------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 49 #include "stm32f4xx_hal_def.h"
mbed_official 532:fe11edbda85c 50
mbed_official 532:fe11edbda85c 51 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 532:fe11edbda85c 52 * @{
mbed_official 532:fe11edbda85c 53 */
mbed_official 532:fe11edbda85c 54
mbed_official 532:fe11edbda85c 55 /** @addtogroup FMPI2C
mbed_official 532:fe11edbda85c 56 * @{
mbed_official 532:fe11edbda85c 57 */
mbed_official 532:fe11edbda85c 58
mbed_official 532:fe11edbda85c 59 /* Exported types ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 60 /** @defgroup FMPI2C_Exported_Types FMPI2C Exported Types
mbed_official 532:fe11edbda85c 61 * @{
mbed_official 532:fe11edbda85c 62 */
mbed_official 532:fe11edbda85c 63
mbed_official 532:fe11edbda85c 64 /**
mbed_official 532:fe11edbda85c 65 * @brief FMPI2C Configuration Structure definition
mbed_official 532:fe11edbda85c 66 */
mbed_official 532:fe11edbda85c 67 typedef struct
mbed_official 532:fe11edbda85c 68 {
mbed_official 532:fe11edbda85c 69 uint32_t Timing; /*!< Specifies the FMPI2C_TIMINGR_register value.
mbed_official 532:fe11edbda85c 70 This parameter calculated by referring to FMPI2C initialization
mbed_official 532:fe11edbda85c 71 section in Reference manual */
mbed_official 532:fe11edbda85c 72
mbed_official 532:fe11edbda85c 73 uint32_t OwnAddress1; /*!< Specifies the first device own address.
mbed_official 532:fe11edbda85c 74 This parameter can be a 7-bit or 10-bit address. */
mbed_official 532:fe11edbda85c 75
mbed_official 532:fe11edbda85c 76 uint32_t AddressingMode; /*!< Specifies if 7-bit or 10-bit addressing mode is selected.
mbed_official 532:fe11edbda85c 77 This parameter can be a value of @ref FMPI2C_addressing_mode */
mbed_official 532:fe11edbda85c 78
mbed_official 532:fe11edbda85c 79 uint32_t DualAddressMode; /*!< Specifies if dual addressing mode is selected.
mbed_official 532:fe11edbda85c 80 This parameter can be a value of @ref FMPI2C_dual_addressing_mode */
mbed_official 532:fe11edbda85c 81
mbed_official 532:fe11edbda85c 82 uint32_t OwnAddress2; /*!< Specifies the second device own address if dual addressing mode is selected
mbed_official 532:fe11edbda85c 83 This parameter can be a 7-bit address. */
mbed_official 532:fe11edbda85c 84
mbed_official 532:fe11edbda85c 85 uint32_t OwnAddress2Masks; /*!< Specifies the acknoledge mask address second device own address if dual addressing mode is selected
mbed_official 532:fe11edbda85c 86 This parameter can be a value of @ref FMPI2C_own_address2_masks */
mbed_official 532:fe11edbda85c 87
mbed_official 532:fe11edbda85c 88 uint32_t GeneralCallMode; /*!< Specifies if general call mode is selected.
mbed_official 532:fe11edbda85c 89 This parameter can be a value of @ref FMPI2C_general_call_addressing_mode */
mbed_official 532:fe11edbda85c 90
mbed_official 532:fe11edbda85c 91 uint32_t NoStretchMode; /*!< Specifies if nostretch mode is selected.
mbed_official 532:fe11edbda85c 92 This parameter can be a value of @ref FMPI2C_nostretch_mode */
mbed_official 532:fe11edbda85c 93
mbed_official 532:fe11edbda85c 94 }FMPI2C_InitTypeDef;
mbed_official 532:fe11edbda85c 95
mbed_official 532:fe11edbda85c 96 /**
mbed_official 532:fe11edbda85c 97 * @brief HAL State structures definition
mbed_official 532:fe11edbda85c 98 */
mbed_official 532:fe11edbda85c 99 typedef enum
mbed_official 532:fe11edbda85c 100 {
mbed_official 532:fe11edbda85c 101 HAL_FMPI2C_STATE_RESET = 0x00, /*!< FMPI2C not yet initialized or disabled */
mbed_official 532:fe11edbda85c 102 HAL_FMPI2C_STATE_READY = 0x01, /*!< FMPI2C initialized and ready for use */
mbed_official 532:fe11edbda85c 103 HAL_FMPI2C_STATE_BUSY = 0x02, /*!< FMPI2C internal process is ongoing */
mbed_official 532:fe11edbda85c 104 HAL_FMPI2C_STATE_MASTER_BUSY_TX = 0x12, /*!< Master Data Transmission process is ongoing */
mbed_official 532:fe11edbda85c 105 HAL_FMPI2C_STATE_MASTER_BUSY_RX = 0x22, /*!< Master Data Reception process is ongoing */
mbed_official 532:fe11edbda85c 106 HAL_FMPI2C_STATE_SLAVE_BUSY_TX = 0x32, /*!< Slave Data Transmission process is ongoing */
mbed_official 532:fe11edbda85c 107 HAL_FMPI2C_STATE_SLAVE_BUSY_RX = 0x42, /*!< Slave Data Reception process is ongoing */
mbed_official 532:fe11edbda85c 108 HAL_FMPI2C_STATE_MEM_BUSY_TX = 0x52, /*!< Memory Data Transmission process is ongoing */
mbed_official 532:fe11edbda85c 109 HAL_FMPI2C_STATE_MEM_BUSY_RX = 0x62, /*!< Memory Data Reception process is ongoing */
mbed_official 532:fe11edbda85c 110 HAL_FMPI2C_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 532:fe11edbda85c 111 HAL_FMPI2C_STATE_ERROR = 0x04 /*!< Reception process is ongoing */
mbed_official 532:fe11edbda85c 112 }HAL_FMPI2C_StateTypeDef;
mbed_official 532:fe11edbda85c 113
mbed_official 532:fe11edbda85c 114 /**
mbed_official 532:fe11edbda85c 115 * @brief HAL FMPI2C Error Code structure definition
mbed_official 532:fe11edbda85c 116 */
mbed_official 532:fe11edbda85c 117 typedef enum
mbed_official 532:fe11edbda85c 118 {
mbed_official 532:fe11edbda85c 119 HAL_FMPI2C_ERROR_NONE = 0x00, /*!< No error */
mbed_official 532:fe11edbda85c 120 HAL_FMPI2C_ERROR_BERR = 0x01, /*!< BERR error */
mbed_official 532:fe11edbda85c 121 HAL_FMPI2C_ERROR_ARLO = 0x02, /*!< ARLO error */
mbed_official 532:fe11edbda85c 122 HAL_FMPI2C_ERROR_AF = 0x04, /*!< ACKF error */
mbed_official 532:fe11edbda85c 123 HAL_FMPI2C_ERROR_OVR = 0x08, /*!< OVR error */
mbed_official 532:fe11edbda85c 124 HAL_FMPI2C_ERROR_DMA = 0x10, /*!< DMA transfer error */
mbed_official 532:fe11edbda85c 125 HAL_FMPI2C_ERROR_TIMEOUT = 0x20, /*!< Timeout error */
mbed_official 532:fe11edbda85c 126 HAL_FMPI2C_ERROR_SIZE = 0x40 /*!< Size Management error */
mbed_official 532:fe11edbda85c 127 }HAL_FMPI2C_ErrorTypeDef;
mbed_official 532:fe11edbda85c 128
mbed_official 532:fe11edbda85c 129 /**
mbed_official 532:fe11edbda85c 130 * @brief FMPI2C handle Structure definition
mbed_official 532:fe11edbda85c 131 */
mbed_official 532:fe11edbda85c 132 typedef struct
mbed_official 532:fe11edbda85c 133 {
mbed_official 532:fe11edbda85c 134 FMPI2C_TypeDef *Instance; /*!< FMPI2C registers base address */
mbed_official 532:fe11edbda85c 135
mbed_official 532:fe11edbda85c 136 FMPI2C_InitTypeDef Init; /*!< FMPI2C communication parameters */
mbed_official 532:fe11edbda85c 137
mbed_official 532:fe11edbda85c 138 uint8_t *pBuffPtr; /*!< Pointer to FMPI2C transfer buffer */
mbed_official 532:fe11edbda85c 139
mbed_official 532:fe11edbda85c 140 uint16_t XferSize; /*!< FMPI2C transfer size */
mbed_official 532:fe11edbda85c 141
mbed_official 532:fe11edbda85c 142 __IO uint16_t XferCount; /*!< FMPI2C transfer counter */
mbed_official 532:fe11edbda85c 143
mbed_official 532:fe11edbda85c 144 DMA_HandleTypeDef *hdmatx; /*!< FMPI2C Tx DMA handle parameters */
mbed_official 532:fe11edbda85c 145
mbed_official 532:fe11edbda85c 146 DMA_HandleTypeDef *hdmarx; /*!< FMPI2C Rx DMA handle parameters */
mbed_official 532:fe11edbda85c 147
mbed_official 532:fe11edbda85c 148 HAL_LockTypeDef Lock; /*!< FMPI2C locking object */
mbed_official 532:fe11edbda85c 149
mbed_official 532:fe11edbda85c 150 __IO HAL_FMPI2C_StateTypeDef State; /*!< FMPI2C communication state */
mbed_official 532:fe11edbda85c 151
mbed_official 532:fe11edbda85c 152 __IO HAL_FMPI2C_ErrorTypeDef ErrorCode; /* FMPI2C Error code */
mbed_official 532:fe11edbda85c 153
mbed_official 532:fe11edbda85c 154 }FMPI2C_HandleTypeDef;
mbed_official 532:fe11edbda85c 155 /**
mbed_official 532:fe11edbda85c 156 * @}
mbed_official 532:fe11edbda85c 157 */
mbed_official 532:fe11edbda85c 158
mbed_official 532:fe11edbda85c 159 /* Exported constants --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 160
mbed_official 532:fe11edbda85c 161 /** @defgroup FMPI2C_Exported_Constants FMPI2C Exported Constants
mbed_official 532:fe11edbda85c 162 * @{
mbed_official 532:fe11edbda85c 163 */
mbed_official 532:fe11edbda85c 164
mbed_official 532:fe11edbda85c 165 /** @defgroup FMPI2C_addressing_mode FMPI2C addressing mode
mbed_official 532:fe11edbda85c 166 * @{
mbed_official 532:fe11edbda85c 167 */
mbed_official 532:fe11edbda85c 168 #define FMPI2C_ADDRESSINGMODE_7BIT ((uint32_t)0x00000001)
mbed_official 532:fe11edbda85c 169 #define FMPI2C_ADDRESSINGMODE_10BIT ((uint32_t)0x00000002)
mbed_official 532:fe11edbda85c 170
mbed_official 532:fe11edbda85c 171 /**
mbed_official 532:fe11edbda85c 172 * @}
mbed_official 532:fe11edbda85c 173 */
mbed_official 532:fe11edbda85c 174
mbed_official 532:fe11edbda85c 175 /** @defgroup FMPI2C_dual_addressing_mode FMPI2C dual addressing mode
mbed_official 532:fe11edbda85c 176 * @{
mbed_official 532:fe11edbda85c 177 */
mbed_official 532:fe11edbda85c 178
mbed_official 532:fe11edbda85c 179 #define FMPI2C_DUALADDRESS_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 180 #define FMPI2C_DUALADDRESS_ENABLE FMPI2C_OAR2_OA2EN
mbed_official 532:fe11edbda85c 181
mbed_official 532:fe11edbda85c 182 /**
mbed_official 532:fe11edbda85c 183 * @}
mbed_official 532:fe11edbda85c 184 */
mbed_official 532:fe11edbda85c 185
mbed_official 532:fe11edbda85c 186 /** @defgroup FMPI2C_own_address2_masks FMPI2C own address2 masks
mbed_official 532:fe11edbda85c 187 * @{
mbed_official 532:fe11edbda85c 188 */
mbed_official 532:fe11edbda85c 189
mbed_official 532:fe11edbda85c 190 #define FMPI2C_OA2_NOMASK ((uint8_t)0x00)
mbed_official 532:fe11edbda85c 191 #define FMPI2C_OA2_MASK01 ((uint8_t)0x01)
mbed_official 532:fe11edbda85c 192 #define FMPI2C_OA2_MASK02 ((uint8_t)0x02)
mbed_official 532:fe11edbda85c 193 #define FMPI2C_OA2_MASK03 ((uint8_t)0x03)
mbed_official 532:fe11edbda85c 194 #define FMPI2C_OA2_MASK04 ((uint8_t)0x04)
mbed_official 532:fe11edbda85c 195 #define FMPI2C_OA2_MASK05 ((uint8_t)0x05)
mbed_official 532:fe11edbda85c 196 #define FMPI2C_OA2_MASK06 ((uint8_t)0x06)
mbed_official 532:fe11edbda85c 197 #define FMPI2C_OA2_MASK07 ((uint8_t)0x07)
mbed_official 532:fe11edbda85c 198
mbed_official 532:fe11edbda85c 199 /**
mbed_official 532:fe11edbda85c 200 * @}
mbed_official 532:fe11edbda85c 201 */
mbed_official 532:fe11edbda85c 202
mbed_official 532:fe11edbda85c 203 /** @defgroup FMPI2C_general_call_addressing_mode FMPI2C general call addressing mode
mbed_official 532:fe11edbda85c 204 * @{
mbed_official 532:fe11edbda85c 205 */
mbed_official 532:fe11edbda85c 206 #define FMPI2C_GENERALCALL_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 207 #define FMPI2C_GENERALCALL_ENABLE FMPI2C_CR1_GCEN
mbed_official 532:fe11edbda85c 208
mbed_official 532:fe11edbda85c 209 /**
mbed_official 532:fe11edbda85c 210 * @}
mbed_official 532:fe11edbda85c 211 */
mbed_official 532:fe11edbda85c 212
mbed_official 532:fe11edbda85c 213 /** @defgroup FMPI2C_nostretch_mode FMPI2C nostretch mode
mbed_official 532:fe11edbda85c 214 * @{
mbed_official 532:fe11edbda85c 215 */
mbed_official 532:fe11edbda85c 216 #define FMPI2C_NOSTRETCH_DISABLE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 217 #define FMPI2C_NOSTRETCH_ENABLE FMPI2C_CR1_NOSTRETCH
mbed_official 532:fe11edbda85c 218
mbed_official 532:fe11edbda85c 219 /**
mbed_official 532:fe11edbda85c 220 * @}
mbed_official 532:fe11edbda85c 221 */
mbed_official 532:fe11edbda85c 222
mbed_official 532:fe11edbda85c 223 /** @defgroup FMPI2C_Memory_Address_Size FMPI2C Memory Address Size
mbed_official 532:fe11edbda85c 224 * @{
mbed_official 532:fe11edbda85c 225 */
mbed_official 532:fe11edbda85c 226 #define FMPI2C_MEMADD_SIZE_8BIT ((uint32_t)0x00000001)
mbed_official 532:fe11edbda85c 227 #define FMPI2C_MEMADD_SIZE_16BIT ((uint32_t)0x00000002)
mbed_official 532:fe11edbda85c 228
mbed_official 532:fe11edbda85c 229 /**
mbed_official 532:fe11edbda85c 230 * @}
mbed_official 532:fe11edbda85c 231 */
mbed_official 532:fe11edbda85c 232
mbed_official 532:fe11edbda85c 233 /** @defgroup FMPI2C_ReloadEndMode_definition FMPI2C ReloadEndMode definition
mbed_official 532:fe11edbda85c 234 * @{
mbed_official 532:fe11edbda85c 235 */
mbed_official 532:fe11edbda85c 236
mbed_official 532:fe11edbda85c 237 #define FMPI2C_RELOAD_MODE FMPI2C_CR2_RELOAD
mbed_official 532:fe11edbda85c 238 #define FMPI2C_AUTOEND_MODE FMPI2C_CR2_AUTOEND
mbed_official 532:fe11edbda85c 239 #define FMPI2C_SOFTEND_MODE ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 240
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 FMPI2C_StartStopMode_definition FMPI2C StartStopMode definition
mbed_official 532:fe11edbda85c 246 * @{
mbed_official 532:fe11edbda85c 247 */
mbed_official 532:fe11edbda85c 248
mbed_official 532:fe11edbda85c 249 #define FMPI2C_NO_STARTSTOP ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 250 #define FMPI2C_GENERATE_STOP FMPI2C_CR2_STOP
mbed_official 532:fe11edbda85c 251 #define FMPI2C_GENERATE_START_READ (uint32_t)(FMPI2C_CR2_START | FMPI2C_CR2_RD_WRN)
mbed_official 532:fe11edbda85c 252 #define FMPI2C_GENERATE_START_WRITE FMPI2C_CR2_START
mbed_official 532:fe11edbda85c 253
mbed_official 532:fe11edbda85c 254 /**
mbed_official 532:fe11edbda85c 255 * @}
mbed_official 532:fe11edbda85c 256 */
mbed_official 532:fe11edbda85c 257
mbed_official 532:fe11edbda85c 258 /** @defgroup FMPI2C_Interrupt_configuration_definition FMPI2C Interrupt configuration definition
mbed_official 532:fe11edbda85c 259 * @brief FMPI2C Interrupt definition
mbed_official 532:fe11edbda85c 260 * Elements values convention: 0xXXXXXXXX
mbed_official 532:fe11edbda85c 261 * - XXXXXXXX : Interrupt control mask
mbed_official 532:fe11edbda85c 262 * @{
mbed_official 532:fe11edbda85c 263 */
mbed_official 532:fe11edbda85c 264 #define FMPI2C_IT_ERRI FMPI2C_CR1_ERRIE
mbed_official 532:fe11edbda85c 265 #define FMPI2C_IT_TCI FMPI2C_CR1_TCIE
mbed_official 532:fe11edbda85c 266 #define FMPI2C_IT_STOPI FMPI2C_CR1_STOPIE
mbed_official 532:fe11edbda85c 267 #define FMPI2C_IT_NACKI FMPI2C_CR1_NACKIE
mbed_official 532:fe11edbda85c 268 #define FMPI2C_IT_ADDRI FMPI2C_CR1_ADDRIE
mbed_official 532:fe11edbda85c 269 #define FMPI2C_IT_RXI FMPI2C_CR1_RXIE
mbed_official 532:fe11edbda85c 270 #define FMPI2C_IT_TXI FMPI2C_CR1_TXIE
mbed_official 532:fe11edbda85c 271
mbed_official 532:fe11edbda85c 272 /**
mbed_official 532:fe11edbda85c 273 * @}
mbed_official 532:fe11edbda85c 274 */
mbed_official 532:fe11edbda85c 275
mbed_official 532:fe11edbda85c 276
mbed_official 532:fe11edbda85c 277 /** @defgroup FMPI2C_Flag_definition FMPI2C Flag definition
mbed_official 532:fe11edbda85c 278 * @{
mbed_official 532:fe11edbda85c 279 */
mbed_official 532:fe11edbda85c 280
mbed_official 532:fe11edbda85c 281 #define FMPI2C_FLAG_TXE FMPI2C_ISR_TXE
mbed_official 532:fe11edbda85c 282 #define FMPI2C_FLAG_TXIS FMPI2C_ISR_TXIS
mbed_official 532:fe11edbda85c 283 #define FMPI2C_FLAG_RXNE FMPI2C_ISR_RXNE
mbed_official 532:fe11edbda85c 284 #define FMPI2C_FLAG_ADDR FMPI2C_ISR_ADDR
mbed_official 532:fe11edbda85c 285 #define FMPI2C_FLAG_AF FMPI2C_ISR_NACKF
mbed_official 532:fe11edbda85c 286 #define FMPI2C_FLAG_STOPF FMPI2C_ISR_STOPF
mbed_official 532:fe11edbda85c 287 #define FMPI2C_FLAG_TC FMPI2C_ISR_TC
mbed_official 532:fe11edbda85c 288 #define FMPI2C_FLAG_TCR FMPI2C_ISR_TCR
mbed_official 532:fe11edbda85c 289 #define FMPI2C_FLAG_BERR FMPI2C_ISR_BERR
mbed_official 532:fe11edbda85c 290 #define FMPI2C_FLAG_ARLO FMPI2C_ISR_ARLO
mbed_official 532:fe11edbda85c 291 #define FMPI2C_FLAG_OVR FMPI2C_ISR_OVR
mbed_official 532:fe11edbda85c 292 #define FMPI2C_FLAG_PECERR FMPI2C_ISR_PECERR
mbed_official 532:fe11edbda85c 293 #define FMPI2C_FLAG_TIMEOUT FMPI2C_ISR_TIMEOUT
mbed_official 532:fe11edbda85c 294 #define FMPI2C_FLAG_ALERT FMPI2C_ISR_ALERT
mbed_official 532:fe11edbda85c 295 #define FMPI2C_FLAG_BUSY FMPI2C_ISR_BUSY
mbed_official 532:fe11edbda85c 296 #define FMPI2C_FLAG_DIR FMPI2C_ISR_DIR
mbed_official 532:fe11edbda85c 297
mbed_official 532:fe11edbda85c 298 /**
mbed_official 532:fe11edbda85c 299 * @}
mbed_official 532:fe11edbda85c 300 */
mbed_official 532:fe11edbda85c 301
mbed_official 532:fe11edbda85c 302 /**
mbed_official 532:fe11edbda85c 303 * @}
mbed_official 532:fe11edbda85c 304 */
mbed_official 532:fe11edbda85c 305
mbed_official 532:fe11edbda85c 306 /* Exported macro ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 307 /** @defgroup FMPI2C_Exported_Macros FMPI2C Exported Macros
mbed_official 532:fe11edbda85c 308 * @{
mbed_official 532:fe11edbda85c 309 */
mbed_official 532:fe11edbda85c 310
mbed_official 532:fe11edbda85c 311 /** @brief Reset FMPI2C handle state
mbed_official 532:fe11edbda85c 312 * @param __HANDLE__: specifies the FMPI2C Handle.
mbed_official 532:fe11edbda85c 313 * This parameter can be FMPI2C where x: 1 or 2 to select the FMPI2C peripheral.
mbed_official 532:fe11edbda85c 314 * @retval None
mbed_official 532:fe11edbda85c 315 */
mbed_official 532:fe11edbda85c 316 #define __HAL_FMPI2C_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_FMPI2C_STATE_RESET)
mbed_official 532:fe11edbda85c 317
mbed_official 532:fe11edbda85c 318 /** @brief Enables or disables the specified FMPI2C interrupts.
mbed_official 532:fe11edbda85c 319 * @param __HANDLE__: specifies the FMPI2C Handle.
mbed_official 532:fe11edbda85c 320 * This parameter can be FMPI2C where x: 1 or 2 to select the FMPI2C peripheral.
mbed_official 532:fe11edbda85c 321 * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
mbed_official 532:fe11edbda85c 322 * This parameter can be one of the following values:
mbed_official 532:fe11edbda85c 323 * @arg FMPI2C_IT_ERRI: Errors interrupt enable
mbed_official 532:fe11edbda85c 324 * @arg FMPI2C_IT_TCI: Transfer complete interrupt enable
mbed_official 532:fe11edbda85c 325 * @arg FMPI2C_IT_STOPI: STOP detection interrupt enable
mbed_official 532:fe11edbda85c 326 * @arg FMPI2C_IT_NACKI: NACK received interrupt enable
mbed_official 532:fe11edbda85c 327 * @arg FMPI2C_IT_ADDRI: Address match interrupt enable
mbed_official 532:fe11edbda85c 328 * @arg FMPI2C_IT_RXI: RX interrupt enable
mbed_official 532:fe11edbda85c 329 * @arg FMPI2C_IT_TXI: TX interrupt enable
mbed_official 532:fe11edbda85c 330 *
mbed_official 532:fe11edbda85c 331 * @retval None
mbed_official 532:fe11edbda85c 332 */
mbed_official 532:fe11edbda85c 333
mbed_official 532:fe11edbda85c 334 #define __HAL_FMPI2C_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR1 |= (__INTERRUPT__))
mbed_official 532:fe11edbda85c 335 #define __HAL_FMPI2C_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR1 &= (~(__INTERRUPT__)))
mbed_official 532:fe11edbda85c 336
mbed_official 532:fe11edbda85c 337 /** @brief Checks if the specified FMPI2C interrupt source is enabled or disabled.
mbed_official 532:fe11edbda85c 338 * @param __HANDLE__: specifies the FMPI2C Handle.
mbed_official 532:fe11edbda85c 339 * This parameter can be FMPI2C where x: 1 or 2 to select the FMPI2C peripheral.
mbed_official 532:fe11edbda85c 340 * @param __INTERRUPT__: specifies the FMPI2C interrupt source to check.
mbed_official 532:fe11edbda85c 341 * This parameter can be one of the following values:
mbed_official 532:fe11edbda85c 342 * @arg FMPI2C_IT_ERRI: Errors interrupt enable
mbed_official 532:fe11edbda85c 343 * @arg FMPI2C_IT_TCI: Transfer complete interrupt enable
mbed_official 532:fe11edbda85c 344 * @arg FMPI2C_IT_STOPI: STOP detection interrupt enable
mbed_official 532:fe11edbda85c 345 * @arg FMPI2C_IT_NACKI: NACK received interrupt enable
mbed_official 532:fe11edbda85c 346 * @arg FMPI2C_IT_ADDRI: Address match interrupt enable
mbed_official 532:fe11edbda85c 347 * @arg FMPI2C_IT_RXI: RX interrupt enable
mbed_official 532:fe11edbda85c 348 * @arg FMPI2C_IT_TXI: TX interrupt enable
mbed_official 532:fe11edbda85c 349 *
mbed_official 532:fe11edbda85c 350 * @retval The new state of __IT__ (TRUE or FALSE).
mbed_official 532:fe11edbda85c 351 */
mbed_official 532:fe11edbda85c 352 #define __HAL_FMPI2C_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR1 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
mbed_official 532:fe11edbda85c 353
mbed_official 532:fe11edbda85c 354 /** @brief Checks whether the specified FMPI2C flag is set or not.
mbed_official 532:fe11edbda85c 355 * @param __HANDLE__: specifies the FMPI2C Handle.
mbed_official 532:fe11edbda85c 356 * This parameter can be FMPI2C where x: 1 or 2 to select the FMPI2C peripheral.
mbed_official 532:fe11edbda85c 357 * @param __FLAG__: specifies the flag to check.
mbed_official 532:fe11edbda85c 358 * This parameter can be one of the following values:
mbed_official 532:fe11edbda85c 359 * @arg FMPI2C_FLAG_TXE: Transmit data register empty
mbed_official 532:fe11edbda85c 360 * @arg FMPI2C_FLAG_TXIS: Transmit interrupt status
mbed_official 532:fe11edbda85c 361 * @arg FMPI2C_FLAG_RXNE: Receive data register not empty
mbed_official 532:fe11edbda85c 362 * @arg FMPI2C_FLAG_ADDR: Address matched (slave mode)
mbed_official 532:fe11edbda85c 363 * @arg FMPI2C_FLAG_AF: Acknowledge failure received flag
mbed_official 532:fe11edbda85c 364 * @arg FMPI2C_FLAG_STOPF: STOP detection flag
mbed_official 532:fe11edbda85c 365 * @arg FMPI2C_FLAG_TC: Transfer complete (master mode)
mbed_official 532:fe11edbda85c 366 * @arg FMPI2C_FLAG_TCR: Transfer complete reload
mbed_official 532:fe11edbda85c 367 * @arg FMPI2C_FLAG_BERR: Bus error
mbed_official 532:fe11edbda85c 368 * @arg FMPI2C_FLAG_ARLO: Arbitration lost
mbed_official 532:fe11edbda85c 369 * @arg FMPI2C_FLAG_OVR: Overrun/Underrun
mbed_official 532:fe11edbda85c 370 * @arg FMPI2C_FLAG_PECERR: PEC error in reception
mbed_official 532:fe11edbda85c 371 * @arg FMPI2C_FLAG_TIMEOUT: Timeout or Tlow detection flag
mbed_official 532:fe11edbda85c 372 * @arg FMPI2C_FLAG_ALERT: SMBus alert
mbed_official 532:fe11edbda85c 373 * @arg FMPI2C_FLAG_BUSY: Bus busy
mbed_official 532:fe11edbda85c 374 * @arg FMPI2C_FLAG_DIR: Transfer direction (slave mode)
mbed_official 532:fe11edbda85c 375 *
mbed_official 532:fe11edbda85c 376 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 532:fe11edbda85c 377 */
mbed_official 532:fe11edbda85c 378 #define __HAL_FMPI2C_GET_FLAG(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->ISR) & ((__FLAG__) & FMPI2C_FLAG_MASK)) == ((__FLAG__) & FMPI2C_FLAG_MASK)))
mbed_official 532:fe11edbda85c 379
mbed_official 532:fe11edbda85c 380 /** @brief Clears the FMPI2C pending flags which are cleared by writing 1 in a specific bit.
mbed_official 532:fe11edbda85c 381 * @param __HANDLE__: specifies the FMPI2C Handle.
mbed_official 532:fe11edbda85c 382 * This parameter can be FMPI2C where x: 1 or 2 to select the FMPI2C peripheral.
mbed_official 532:fe11edbda85c 383 * @param __FLAG__: specifies the flag to clear.
mbed_official 532:fe11edbda85c 384 * This parameter can be any combination of the following values:
mbed_official 532:fe11edbda85c 385 * @arg FMPI2C_FLAG_ADDR: Address matched (slave mode)
mbed_official 532:fe11edbda85c 386 * @arg FMPI2C_FLAG_AF: Acknowledge failure received flag
mbed_official 532:fe11edbda85c 387 * @arg FMPI2C_FLAG_STOPF: STOP detection flag
mbed_official 532:fe11edbda85c 388 * @arg FMPI2C_FLAG_BERR: Bus error
mbed_official 532:fe11edbda85c 389 * @arg FMPI2C_FLAG_ARLO: Arbitration lost
mbed_official 532:fe11edbda85c 390 * @arg FMPI2C_FLAG_OVR: Overrun/Underrun
mbed_official 532:fe11edbda85c 391 * @arg FMPI2C_FLAG_PECERR: PEC error in reception
mbed_official 532:fe11edbda85c 392 * @arg FMPI2C_FLAG_TIMEOUT: Timeout or Tlow detection flag
mbed_official 532:fe11edbda85c 393 * @arg FMPI2C_FLAG_ALERT: SMBus alert
mbed_official 532:fe11edbda85c 394 *
mbed_official 532:fe11edbda85c 395 * @retval None
mbed_official 532:fe11edbda85c 396 */
mbed_official 532:fe11edbda85c 397 #define __HAL_FMPI2C_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = ((__FLAG__) & FMPI2C_FLAG_MASK))
mbed_official 532:fe11edbda85c 398
mbed_official 532:fe11edbda85c 399
mbed_official 532:fe11edbda85c 400 #define __HAL_FMPI2C_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= FMPI2C_CR1_PE)
mbed_official 532:fe11edbda85c 401 #define __HAL_FMPI2C_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~FMPI2C_CR1_PE)
mbed_official 532:fe11edbda85c 402
mbed_official 532:fe11edbda85c 403 #define __HAL_FMPI2C_RESET_CR2(__HANDLE__) ((__HANDLE__)->Instance->CR2 &= (uint32_t)~((uint32_t)(FMPI2C_CR2_SADD | FMPI2C_CR2_HEAD10R | FMPI2C_CR2_NBYTES | FMPI2C_CR2_RELOAD | FMPI2C_CR2_RD_WRN)))
mbed_official 532:fe11edbda85c 404
mbed_official 532:fe11edbda85c 405 #define __HAL_FMPI2C_MEM_ADD_MSB(__ADDRESS__) ((uint8_t)((uint16_t)(((uint16_t)((__ADDRESS__) & (uint16_t)(0xFF00))) >> 8)))
mbed_official 532:fe11edbda85c 406 #define __HAL_FMPI2C_MEM_ADD_LSB(__ADDRESS__) ((uint8_t)((uint16_t)((__ADDRESS__) & (uint16_t)(0x00FF))))
mbed_official 532:fe11edbda85c 407
mbed_official 532:fe11edbda85c 408 #define __HAL_FMPI2C_GENERATE_START(__ADDMODE__,__ADDRESS__) (((__ADDMODE__) == FMPI2C_ADDRESSINGMODE_7BIT) ? (uint32_t)((((uint32_t)(__ADDRESS__) & (FMPI2C_CR2_SADD)) | (FMPI2C_CR2_START) | (FMPI2C_CR2_AUTOEND)) & (~FMPI2C_CR2_RD_WRN)) : \
mbed_official 532:fe11edbda85c 409 (uint32_t)((((uint32_t)(__ADDRESS__) & (FMPI2C_CR2_SADD)) | (FMPI2C_CR2_ADD10) | (FMPI2C_CR2_START)) & (~FMPI2C_CR2_RD_WRN)))
mbed_official 532:fe11edbda85c 410
mbed_official 532:fe11edbda85c 411 #define IS_FMPI2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= (uint32_t)0x000003FF)
mbed_official 532:fe11edbda85c 412 #define IS_FMPI2C_OWN_ADDRESS2(ADDRESS2) ((ADDRESS2) <= (uint16_t)0x00FF)
mbed_official 532:fe11edbda85c 413
mbed_official 532:fe11edbda85c 414 /**
mbed_official 532:fe11edbda85c 415 * @}
mbed_official 532:fe11edbda85c 416 */
mbed_official 532:fe11edbda85c 417
mbed_official 532:fe11edbda85c 418 /* Include FMPI2C HAL Extension module */
mbed_official 532:fe11edbda85c 419 #include "stm32f4xx_hal_fmpi2c_ex.h"
mbed_official 532:fe11edbda85c 420
mbed_official 532:fe11edbda85c 421 /* Exported functions --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 422 /** @addtogroup FMPI2C_Exported_Functions
mbed_official 532:fe11edbda85c 423 * @{
mbed_official 532:fe11edbda85c 424 */
mbed_official 532:fe11edbda85c 425
mbed_official 532:fe11edbda85c 426 /** @addtogroup FMPI2C_Exported_Functions_Group1
mbed_official 532:fe11edbda85c 427 * @{
mbed_official 532:fe11edbda85c 428 */
mbed_official 532:fe11edbda85c 429
mbed_official 532:fe11edbda85c 430 /* Initialization/de-initialization functions**********************************/
mbed_official 532:fe11edbda85c 431 HAL_StatusTypeDef HAL_FMPI2C_Init(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 432 HAL_StatusTypeDef HAL_FMPI2C_DeInit (FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 433 void HAL_FMPI2C_MspInit(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 434 void HAL_FMPI2C_MspDeInit(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 435
mbed_official 532:fe11edbda85c 436 /**
mbed_official 532:fe11edbda85c 437 * @}
mbed_official 532:fe11edbda85c 438 */
mbed_official 532:fe11edbda85c 439
mbed_official 532:fe11edbda85c 440 /** @addtogroup FMPI2C_Exported_Functions_Group2
mbed_official 532:fe11edbda85c 441 * @{
mbed_official 532:fe11edbda85c 442 */
mbed_official 532:fe11edbda85c 443
mbed_official 532:fe11edbda85c 444 /* I/O operation functions ***************************************************/
mbed_official 532:fe11edbda85c 445 /******* Blocking mode: Polling */
mbed_official 532:fe11edbda85c 446 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 447 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 448 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 449 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 450 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 451 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
mbed_official 532:fe11edbda85c 452 HAL_StatusTypeDef HAL_FMPI2C_IsDeviceReady(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout);
mbed_official 532:fe11edbda85c 453
mbed_official 532:fe11edbda85c 454 /******* Non-Blocking mode: Interrupt */
mbed_official 532:fe11edbda85c 455 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 456 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 457 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 458 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 459 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 460 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read_IT(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 461
mbed_official 532:fe11edbda85c 462 /******* Non-Blocking mode: DMA */
mbed_official 532:fe11edbda85c 463 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 464 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 465 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 466 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 467 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 468 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read_DMA(FMPI2C_HandleTypeDef *hFMPI2C, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size);
mbed_official 532:fe11edbda85c 469
mbed_official 532:fe11edbda85c 470 /******* FMPI2C IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */
mbed_official 532:fe11edbda85c 471 void HAL_FMPI2C_EV_IRQHandler(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 472 void HAL_FMPI2C_ER_IRQHandler(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 473 void HAL_FMPI2C_MasterTxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 474 void HAL_FMPI2C_MasterRxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 475 void HAL_FMPI2C_SlaveTxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 476 void HAL_FMPI2C_SlaveRxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 477 void HAL_FMPI2C_MemTxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 478 void HAL_FMPI2C_MemRxCpltCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 479 void HAL_FMPI2C_ErrorCallback(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 480 /**
mbed_official 532:fe11edbda85c 481 * @}
mbed_official 532:fe11edbda85c 482 */
mbed_official 532:fe11edbda85c 483
mbed_official 532:fe11edbda85c 484 /** @addtogroup FMPI2C_Exported_Functions_Group3
mbed_official 532:fe11edbda85c 485 * @{
mbed_official 532:fe11edbda85c 486 */
mbed_official 532:fe11edbda85c 487
mbed_official 532:fe11edbda85c 488 /* Peripheral State functions ************************************************/
mbed_official 532:fe11edbda85c 489 HAL_FMPI2C_StateTypeDef HAL_FMPI2C_GetState(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 490 uint32_t HAL_FMPI2C_GetError(FMPI2C_HandleTypeDef *hFMPI2C);
mbed_official 532:fe11edbda85c 491
mbed_official 532:fe11edbda85c 492 /**
mbed_official 532:fe11edbda85c 493 * @}
mbed_official 532:fe11edbda85c 494 */
mbed_official 532:fe11edbda85c 495
mbed_official 532:fe11edbda85c 496 /**
mbed_official 532:fe11edbda85c 497 * @}
mbed_official 532:fe11edbda85c 498 */
mbed_official 532:fe11edbda85c 499
mbed_official 532:fe11edbda85c 500 /* Private types -------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 501
mbed_official 532:fe11edbda85c 502 /* Private variables ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 503 /* Private constants ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 504 /** @defgroup FMPI2C_Private_Constants FMPI2C Private Constants
mbed_official 532:fe11edbda85c 505 * @{
mbed_official 532:fe11edbda85c 506 */
mbed_official 532:fe11edbda85c 507 #define FMPI2C_FLAG_MASK ((uint32_t)0x0001FFFF)
mbed_official 532:fe11edbda85c 508 /**
mbed_official 532:fe11edbda85c 509 * @}
mbed_official 532:fe11edbda85c 510 */
mbed_official 532:fe11edbda85c 511
mbed_official 532:fe11edbda85c 512 /* Private macros ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 513 /** @defgroup FMPI2C_Private_Macros FMPI2C Private Macros
mbed_official 532:fe11edbda85c 514 * @{
mbed_official 532:fe11edbda85c 515 */
mbed_official 532:fe11edbda85c 516
mbed_official 532:fe11edbda85c 517 #define IS_FMPI2C_ADDRESSING_MODE(MODE) (((MODE) == FMPI2C_ADDRESSINGMODE_7BIT) || \
mbed_official 532:fe11edbda85c 518 ((MODE) == FMPI2C_ADDRESSINGMODE_10BIT))
mbed_official 532:fe11edbda85c 519
mbed_official 532:fe11edbda85c 520 #define IS_FMPI2C_DUAL_ADDRESS(ADDRESS) (((ADDRESS) == FMPI2C_DUALADDRESS_DISABLE) || \
mbed_official 532:fe11edbda85c 521 ((ADDRESS) == FMPI2C_DUALADDRESS_ENABLE))
mbed_official 532:fe11edbda85c 522
mbed_official 532:fe11edbda85c 523 #define IS_FMPI2C_OWN_ADDRESS2_MASK(MASK) (((MASK) == FMPI2C_OA2_NOMASK) || \
mbed_official 532:fe11edbda85c 524 ((MASK) == FMPI2C_OA2_MASK01) || \
mbed_official 532:fe11edbda85c 525 ((MASK) == FMPI2C_OA2_MASK02) || \
mbed_official 532:fe11edbda85c 526 ((MASK) == FMPI2C_OA2_MASK03) || \
mbed_official 532:fe11edbda85c 527 ((MASK) == FMPI2C_OA2_MASK04) || \
mbed_official 532:fe11edbda85c 528 ((MASK) == FMPI2C_OA2_MASK05) || \
mbed_official 532:fe11edbda85c 529 ((MASK) == FMPI2C_OA2_MASK06) || \
mbed_official 532:fe11edbda85c 530 ((MASK) == FMPI2C_OA2_MASK07))
mbed_official 532:fe11edbda85c 531
mbed_official 532:fe11edbda85c 532 #define IS_FMPI2C_GENERAL_CALL(CALL) (((CALL) == FMPI2C_GENERALCALL_DISABLE) || \
mbed_official 532:fe11edbda85c 533 ((CALL) == FMPI2C_GENERALCALL_ENABLE))
mbed_official 532:fe11edbda85c 534
mbed_official 532:fe11edbda85c 535 #define IS_FMPI2C_NO_STRETCH(STRETCH) (((STRETCH) == FMPI2C_NOSTRETCH_DISABLE) || \
mbed_official 532:fe11edbda85c 536 ((STRETCH) == FMPI2C_NOSTRETCH_ENABLE))
mbed_official 532:fe11edbda85c 537
mbed_official 532:fe11edbda85c 538 #define IS_FMPI2C_MEMADD_SIZE(SIZE) (((SIZE) == FMPI2C_MEMADD_SIZE_8BIT) || \
mbed_official 532:fe11edbda85c 539 ((SIZE) == FMPI2C_MEMADD_SIZE_16BIT))
mbed_official 532:fe11edbda85c 540
mbed_official 532:fe11edbda85c 541 #define IS_TRANSFER_MODE(MODE) (((MODE) == FMPI2C_RELOAD_MODE) || \
mbed_official 532:fe11edbda85c 542 ((MODE) == FMPI2C_AUTOEND_MODE) || \
mbed_official 532:fe11edbda85c 543 ((MODE) == FMPI2C_SOFTEND_MODE))
mbed_official 532:fe11edbda85c 544
mbed_official 532:fe11edbda85c 545 #define IS_TRANSFER_REQUEST(REQUEST) (((REQUEST) == FMPI2C_GENERATE_STOP) || \
mbed_official 532:fe11edbda85c 546 ((REQUEST) == FMPI2C_GENERATE_START_READ) || \
mbed_official 532:fe11edbda85c 547 ((REQUEST) == FMPI2C_GENERATE_START_WRITE) || \
mbed_official 532:fe11edbda85c 548 ((REQUEST) == FMPI2C_NO_STARTSTOP))
mbed_official 532:fe11edbda85c 549
mbed_official 532:fe11edbda85c 550 /**
mbed_official 532:fe11edbda85c 551 * @}
mbed_official 532:fe11edbda85c 552 */
mbed_official 532:fe11edbda85c 553 /* Private functions ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 554 /** @defgroup FMPI2C_Private_Functions FMPI2C Private Functions
mbed_official 532:fe11edbda85c 555 * @brief FMPI2C private functions
mbed_official 532:fe11edbda85c 556 * @{
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
mbed_official 532:fe11edbda85c 562 /**
mbed_official 532:fe11edbda85c 563 * @}
mbed_official 532:fe11edbda85c 564 */
mbed_official 532:fe11edbda85c 565
mbed_official 532:fe11edbda85c 566 /**
mbed_official 532:fe11edbda85c 567 * @}
mbed_official 532:fe11edbda85c 568 */
mbed_official 532:fe11edbda85c 569 #endif /* STM32F446xx */
mbed_official 532:fe11edbda85c 570 #ifdef __cplusplus
mbed_official 532:fe11edbda85c 571 }
mbed_official 532:fe11edbda85c 572 #endif
mbed_official 532:fe11edbda85c 573
mbed_official 532:fe11edbda85c 574
mbed_official 532:fe11edbda85c 575 #endif /* __STM32F4xx_HAL_FMPI2C_H */
mbed_official 532:fe11edbda85c 576
mbed_official 532:fe11edbda85c 577 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/