-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstm32091c_eval_eeprom.h
135 lines (110 loc) · 3.68 KB
/
stm32091c_eval_eeprom.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
******************************************************************************
* @file stm32091c_eval_eeprom.h
* @author MCD Application Team
* @brief This file contains all the functions prototypes for
* the stm32091c_eval_eeprom.c firmware driver.
******************************************************************************
* @attention
*
* Copyright (c) 2016 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32091C_EVAL_EEPROM_H
#define __STM32091C_EVAL_EEPROM_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32091c_eval.h"
/** @addtogroup BSP
* @{
*/
/** @addtogroup STM32091C_EVAL
* @{
*/
/** @defgroup STM32091C_EVAL_EEPROM STM32091C-EVAL EEPROM
* @{
*/
/** @defgroup STM32091C_EVAL_EEPROM_Private_Variables Private Variables
* @{
*/
/**
* @}
*/
/** @defgroup STM32091C_EVAL_EEPROM_Exported_Types Exported Types
* @{
*/
typedef struct
{
uint32_t (*Init)(void);
uint32_t (*ReadBuffer)(uint8_t* , uint16_t , uint32_t* );
uint32_t (*WritePage)(uint8_t* , uint16_t , uint32_t* );
}EEPROM_DrvTypeDef;
/**
* @}
*/
/** @defgroup STM32091C_EVAL_EEPROM_Exported_Constants Exported Constants
* @{
*/
/* EEPROMs hardware address and page size */
#define EEPROM_ADDRESS_M24LR64_A01 0xA0 /* RF EEPROM ANT7-M24LR-A01 used */
#define EEPROM_ADDRESS_M24LR64_A02 0xA6 /* RF EEPROM ANT7-M24LR-A02 used */
#define EEPROM_PAGESIZE_M24LR64 4 /* RF EEPROM ANT7-M24LR-A used */
/* EEPROM BSP return values */
#define EEPROM_OK 0
#define EEPROM_FAIL 1
#define EEPROM_TIMEOUT 2
/* EEPROM BSP devices definition list supported */
#define BSP_EEPROM_M24LR64 1 /* RF I2C EEPROM M24LR64 */
/* Maximum number of trials for EEPROM_I2C_WaitEepromStandbyState() function */
#define EEPROM_MAX_TRIALS 300
/**
* @}
*/
/** @defgroup STM32091C_EVAL_EEPROM_Exported_Functions Exported Functions
* @{
*/
uint32_t BSP_EEPROM_Init(void);
uint32_t BSP_EEPROM_ReadBuffer(uint8_t* pBuffer, uint16_t ReadAddr, uint32_t* NumByteToRead);
uint32_t BSP_EEPROM_WriteBuffer(uint8_t* pBuffer, uint16_t WriteAddr, uint32_t NumByteToWrite);
/* USER Callbacks: This function is declared as __weak in EEPROM driver and
should be implemented into user application.
BSP_EEPROM_TIMEOUT_UserCallback() function is called whenever a timeout condition
occur during communication (waiting on an event that doesn't occur, bus
errors, busy devices ...). */
void BSP_EEPROM_TIMEOUT_UserCallback(void);
/* Link functions for I2C EEPROM peripheral */
void EEPROM_IO_Init(void);
HAL_StatusTypeDef EEPROM_IO_WriteData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
HAL_StatusTypeDef EEPROM_IO_ReadData(uint16_t DevAddress, uint16_t MemAddress, uint8_t* pBuffer, uint32_t BufferSize);
HAL_StatusTypeDef EEPROM_IO_IsDeviceReady(uint16_t DevAddress, uint32_t Trials);
/**
* @}
*/
/** @defgroup STM32091C_EVAL_EEPROM_Private_Functions Private Functions
* @{
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __STM32091C_EVAL_EEPROM_H */