} /** * @brief I2C 外设(EEPROM)初始化 * @param 无 * @retval 无 */ void I2C_EE_Init(void) { I2C_GPIO_Config(); I2C_Mode_Configu(); /* 根据头文件i2c_ee.h中的定义来选择EEPROM要写入的设备地址 */ /* 选择 EEPROM Block0 来写入 */ EEPROM_ADDRESS = EEPROM_Block0_ADDRESS; } ...
init() 用于启动存储子系统; read_block() 读取一个字节块; write_block() 写一个字节块。 之所以有这个非常简单的 API,是因为我们鼓励开发者使用 StorageManager API 而不是 hal.storage。你应该只在建立新板或调试时才深入研究 hal.storage。 可用的存储空间大小是在AP_HAL/AP_HAL_Boards.h的宏 HAL_STORAG...
Flash存储器是一种电可擦除程序化只读存储器的形式,允许在操作中被多次擦除或读写。Flash存储器由多个层次的结构组成,包括Device、target、LUN、Block和Page等。其中,LUN是逻辑单元,可以独立执行一个命令或汇报状态;Block是擦除的最小单元,由多个Page组成;Page是写入和读出的基本单位。Flash存储器的主要特点是高集成...
extern uint8_t eeprom_read_byte (const uint8_t *addr);//读取指定地址的一个字节8bit的EEPROM数据 extern uint16_t eeprom_read_word (const uint16_t *addr);//读取指定地址的一个字16bit的EEPROM数据 extern void eeprom_read_block (void *buf, const void *addr, size_t n);//读取由指定地址...
EEprom bios nor 用SPI 还是 eeprom block EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯片。 EERPOM的基本结构有几种,这里讲解比较常用的FLOTOX管结构,如下图所示: FLOTOX(Floating Gate Tunneling Oxide)MOS管即浮栅隧道氧化层晶体管,...
Block为512或4096字节,数据写入的最小单位是Block,写入前都需要擦除整个Block;NORFLASH则是写入前必须以Sector/Block为单位擦除,然后才可以按字节写入。而我们的EEPROM数据写入和擦除的最小单位是“字节”而不“页”,数据写入前不需要擦除整页。 从EEPROM读取数据 从EEPROM读取数据是一个复合的I2C时序...
EEPROM_ADDRESS = EEPROM_Block2_ADDRESS; #endif #ifdef EEPROM_Block3_ADDRESS/* 选择 EEPROM Block3 来写入 */ EEPROM_ADDRESS = EEPROM_Block3_ADDRESS; #endif } (1)EEPROM地址 AT24C02:256字节,高四位硬性规定,最低位是R/W(传输方向选择位),在制作硬件时,我们可以根据需要改变的是地址位中的 A2、A1...
EEPROM.write(block_num*EEPROM_BLOCK_SIZE+i, EEPROM.read(min_erase_count_block*EEPROM_BLOCK_SIZE+i)); } // 擦除最小擦写次数的块 EEPROM.eraseBlock(min_erase_count_block); // 更新擦写次数记录 erase_count[min_erase_count_block] = 0; ...
学习笔记之内部eeprom读写
EEPROM_ADDRESS = EEPROM_Block2_ADDRESS; #endif #ifdef EEPROM_Block3_ADDRESS /* 选择 EEPROM Block3 来写入 */ EEPROM_ADDRESS = EEPROM_Block3_ADDRESS; #endif } (1)EEPROM地址 AT24C02:256字节,高四位硬性规定,最低位是R/W(传输方向选择位),在制作硬件时,我们可以根据需要改变的是地址位中的 A2、A1...