You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.8 KiB

3 days ago
/*
* bsp_EEPROM.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_EEPROM_H_
#define INC_BSP_EEPROM_H_
#include "../../BASE/Inc/BSP/bsp_include.h"
#include "bsp_CV.pb.h"
#include "bsp_PV.pb.h"
#include "bsp_IAP.pb.h"
#define EEPROM_WP_Pin GPIO_PIN_11
#define EEPROM_WP_GPIO_Port GPIOE
#define EEPROM_SCL_Pin GPIO_PIN_12
#define EEPROM_SCL_GPIO_Port GPIOE
#define EEPROM_SDA_Pin GPIO_PIN_13
#define EEPROM_SDA_GPIO_Port GPIOE
#define AT24C512
#ifdef AT24C512
#define EE_MODEL_NAME "AT24C512"
#define EE_DEV_ADDR 0xA0 /* 设备地址 */
#define EE_PAGE_SIZE 128 /* 页面大小(字节) */
#define EE_SIZE (512*128) /* 总容量(字节) */ // not used in this progrm
#define EE_ADDR_BYTES 2 /* 地址字节个数 */
#endif
#define I2C_WR 0 /* 写控制bit */
#define I2C_RD 1 /* 读控制bit */
//////////////////////////////////////////////////////////////////
//there are 12M eeprom in total, and the code download Address is App_Download_EEPROM_Addr
//512 Pages x 128 Bytes = 65536 Bytes = 512 kbits
#define GF_BSP_EEPROM_CV_struct_define_Start_Address 0
#define IAP_struct_define_Start_Address 512
extern uint16_t App_Download_EEPROM_Addr;
//返回值::1-正常;0-错误
uint8_t GF_BSP_EEPROM_Init(void);
uint8_t GF_BSP_EEPROM_CheckOK(void);
uint8_t GF_BSP_EEPROM_ReadBytes(uint8_t *_pReadBuf, uint16_t _usAddress,
uint16_t _usSize);
uint8_t GF_BSP_EEPROM_WriteBytes(uint8_t *_pWriteBuf, uint16_t _usAddress,
uint16_t _usSize);
CV_struct_define GF_BSP_EEPROM_Get_CV(void);
uint8_t GF_BSP_EEPROM_Set_CV(CV_struct_define cv);
IAP_struct_define GF_BSP_EEPROM_Get_IAP(void);
uint8_t GF_BSP_EEPROM_Set_IAP(IAP_struct_define iap);
PV_struct_define GF_BSP_EEPROM_Get_PV(void);
uint8_t GF_BSP_EEPROM_Set_PV(PV_struct_define pv);
#endif /* INC_BSP_EEPROM_H_ */