eeprom用iic通信。eeprom有几个特点需要关注:
1、可以单字节读写
2、eeprom按页划分存储,不同型号的eeprom的页大小不一致,往eeprom写数据时,如果写到了该页的末尾,会自动从该页的开头继续写,把之前的数据覆盖,读则不会。
/*
* Copyright 2017 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/* Standard C Included Files */
#include <stdio.h>
#include <string.h>
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "fsl_debug_console.h"
#include "fsl_lpi2c.h"
/*******************************************************************************
* Definitions
******************************************************************************/
#define EEPROM_I2C_MASTER (LPI2C3)
#define EEPROM_I2C_BAUD (400000UL)
/* Select USB1 PLL (480 MHz) as master lpi2c clock source */
#define LPI2C_CLOCK_SOURCE_SELECT (0U)
/* Clock divider for master lpi2c clock source */
#define LPI2C_CLOCK_SOURCE_DIVIDER (5U)
/* Get frequency of lpi2c clock */
#define LPI2C_CLOCK_FREQUENCY ((CLOCK_GetFreq(kCLOCK_Usb1PllClk) / 8) / (LPI2C_CLOCK_SOURCE_DIVIDER + 1U))
#define LPI2C_MASTER_CLOCK_FREQUENCY LPI2C_CLOCK_FREQUENCY
#define AT24C256
#define EEPROM_PAGE_SIZE 64
#define EEPROM_SIZE (32*1024)
#define EEPROM_ADDR_BYTES 2
#define EEPROM_WRITE_ADDRESS_8_BIT (0xA2)
#define EEPROM_READ_ADDRESS_8_BIT (0xA3)
/*******************************************************************************
* Prototypes
******************************************************************************/
/*******************************************************************************
* Variables
*************************************************************************

最低0.47元/天 解锁文章
1774

被折叠的 条评论
为什么被折叠?



