1 /* 2 * Copyright (c) 2022 FuZhou Lockzhiner Electronic Co., Ltd. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef _EEPROM_H_ 16 #define _EEPROM_H_ 17 18 /*************************************************************** 19 * 函数名称: eeprom_init 20 * 说 明: EEPROM初始化 21 * 参 数: 无 22 * 返 回 值: 0为成功,反之失败 23 ***************************************************************/ 24 unsigned int eeprom_init(void); 25 26 /*************************************************************** 27 * 函数名称: eeprom_deinit 28 * 说 明: EEPROM退出 29 * 参 数: 无 30 * 返 回 值: 0为成功,反之失败 31 ***************************************************************/ 32 unsigned int eeprom_deinit(void); 33 34 /*************************************************************** 35 * 函数名称: eeprom_get_blocksize 36 * 说 明: EEPROM获取页大小 37 * 参 数: 无 38 * 返 回 值: 返回页大小 39 ***************************************************************/ 40 unsigned int eeprom_get_blocksize(void); 41 42 /*************************************************************** 43 * 函数名称: eeprom_readbyte 44 * 说 明: EEPROM读一个字节 45 * 参 数: 46 * @addr: EEPROM存储地址 47 * @data: 存放EERPOM的数据指针 48 * 返 回 值: 返回读取字节的长度,反之为错误 49 ***************************************************************/ 50 unsigned int eeprom_readbyte(unsigned int addr, unsigned char *data); 51 52 /*************************************************************** 53 * 函数名称: eeprom_writebyte 54 * 说 明: EEPROM写一个字节 55 * 参 数: 56 * @addr: EEPROM存储地址 57 * @data: 写ERPOM的数据 58 * 返 回 值: 返回写入数据的长度,反之为错误 59 ***************************************************************/ 60 unsigned int eeprom_writebyte(unsigned int addr, unsigned char data); 61 62 /*************************************************************** 63 * 函数名称: eeprom_writepage 64 * 说 明: EEPROM写1个页字节 65 * 参 数: 66 * @addr: EEPROM存储地址,必须是页地址 67 * @data: 写ERPOM的数据指针 68 * @data_len: 写EEPROM数据的长度,必须是小于或等于1个页大小 69 * 返 回 值: 返回写入数据的长度,反之为错误 70 ***************************************************************/ 71 unsigned int eeprom_writepage(unsigned int addr, unsigned char *data, unsigned int data_len); 72 73 /*************************************************************** 74 * 函数名称: eeprom_read 75 * 说 明: EEPROM读多个字节 76 * 参 数: 77 * @addr: EERPOM存储地址 78 * @data: 存放EERPOM的数据指针 79 * @data_len: 读取EERPOM数据的长度 80 * 返 回 值: 返回读取字节的长度,反之为错误 81 ***************************************************************/ 82 unsigned int eeprom_read(unsigned int addr, unsigned char *data, unsigned int data_len); 83 84 /*************************************************************** 85 * 函数名称: eeprom_write 86 * 说 明: EEPROM写多个字节 87 * 参 数: 88 * @addr: EEPROM存储地址 89 * @data: 写ERPOM的数据指针 90 * @data_len: 写EEPROM数据的长度 91 * 返 回 值: 返回写入数据的长度,反之为错误 92 ***************************************************************/ 93 unsigned int eeprom_write(unsigned int addr, unsigned char *data, unsigned int data_len); 94 95 96 #endif /* _EEPROM_H_ */