/** ****************************************************************************** * @file m24lr64.h * @author MCD Application Team * @brief This file is the header of m24lr64.c ****************************************************************************** * @attention * *

© Copyright (c) 2019 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef M24LR64_H #define M24LR64_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include #include /** @addtogroup BSP * @{ */ /** @addtogroup Component * @{ */ /** @addtogroup M24LR64 * @{ */ /** @defgroup M24LR64_Exported_Types M24LR64 Exported Types * @{ */ typedef int32_t (*M24LR64_Init_Func) (void); typedef int32_t (*M24LR64_DeInit_Func) (void); typedef int32_t (*M24LR64_GetTick_Func) (void); typedef int32_t (*M24LR64_Delay_Func) (uint32_t); typedef int32_t (*M24LR64_WriteReg_Func) (uint16_t, uint16_t, uint8_t*, uint16_t); typedef int32_t (*M24LR64_ReadReg_Func) (uint16_t, uint16_t, uint8_t*, uint16_t); typedef int32_t (*M24LR64_IsDeviceReady_Func) (uint16_t, uint32_t); typedef int32_t (*M24LR64_Write_Func)(void *, uint16_t, uint8_t*, uint16_t); typedef int32_t (*M24LR64_Read_Func) (void *, uint16_t, uint8_t*, uint16_t); typedef int32_t (*M24LR64_IsReady_Func) (void *, uint32_t); typedef struct { M24LR64_Write_Func Write; M24LR64_Read_Func Read; M24LR64_IsReady_Func IsReady; void *handle; } M24LR64_Ctx_t; typedef struct { M24LR64_Init_Func Init; M24LR64_DeInit_Func DeInit; uint16_t Address; M24LR64_WriteReg_Func Write; M24LR64_ReadReg_Func Read; M24LR64_IsDeviceReady_Func IsReady; M24LR64_GetTick_Func GetTick; } M24LR64_IO_t; typedef struct { M24LR64_IO_t IO; M24LR64_Ctx_t Ctx; uint8_t IsInitialized; } M24LR64_Object_t; typedef struct { int32_t (*Init )(M24LR64_Object_t*); int32_t (*DeInit )(M24LR64_Object_t*); int32_t (*Write )(M24LR64_Object_t*, uint16_t, uint8_t*, uint16_t); int32_t (*Read )(M24LR64_Object_t*, uint16_t, uint8_t*, uint16_t); int32_t (*IsReady )(M24LR64_Object_t*, uint32_t); }M24LR64_EEPROM_Drv_t; /** * @} */ /** @defgroup M24LR64_Exported_Constants M24LR64 Exported Constants * @{ */ #define M24LR64_OK 0 #define M24LR64_ERROR -1 /** * @} */ /** @defgroup M24LR64_Exported_FunctionsPrototypes M24LR64 Exported FunctionsPrototypes * @{ */ /* public function --------------------------------------------------------------------------*/ int32_t M24LR64_RegisterBusIO (M24LR64_Object_t *pObj, M24LR64_IO_t *pIO); int32_t M24LR64_Init(M24LR64_Object_t *pObj); int32_t M24LR64_DeInit(M24LR64_Object_t *pObj); int32_t M24LR64_Write(M24LR64_Object_t *pObj, uint16_t Addr, uint8_t *Data, uint16_t Length); int32_t M24LR64_Read(M24LR64_Object_t *pObj, uint16_t Addr, uint8_t *Data, uint16_t Length); int32_t M24LR64_IsReady(M24LR64_Object_t *pObj, uint32_t Trials); extern M24LR64_EEPROM_Drv_t M24LR64_EEPROM_Driver; /** * @} */ /** * @} */ /** * @} */ /** * @} */ #ifdef __cplusplus } #endif #endif /* M24LR64_H */ /******************* (C) COPYRIGHT STMicroelectronics *****END OF FILE****/