47f95b9caaddb0c609d17ab4ceb5f7d6426b9392
Driver_M24Cxx(可移植 EEPROM 驱动)
这是一个面向 M24Cxx / AT24Cxx 系列 EEPROM 的可移植驱动模块。
核心特性:
- 不依赖特定 MCU/SDK(不绑定 STM32 HAL)
- 支持页写自动拆分
- 用户传入 I2C 读、I2C 写、毫秒延时三个函数后即可直接使用
目录结构
module/Int_EEPROM24xx.h:驱动接口module/Int_EEPROM24xx.c:驱动实现examples/adapter_template.c:移植模板
使用步骤
- 将
module/Int_EEPROM24xx.h/.c加入你的工程。 - 在你的平台实现三个函数:
your_i2c_read(...)your_i2c_write(...)your_delay_ms(...)
- 调用
Int_EEPROM24xx_Init(...)完成初始化。 - 直接调用
Int_EEPROM24xx_Read/Write进行访问。
示例
IntEEPROM24xx_Config_t cfg = {
.dev_addr = (0x50u << 1),
.page_size = 8u,
.mem_addr_size = 1u,
.write_cycle_ms = 6u,
.timeout_ms = 100u,
};
Int_EEPROM24xx_Init(&cfg, your_i2c_read, your_i2c_write, your_delay_ms);
Int_EEPROM24xx_Write(0x00, tx_buf, tx_len);
Int_EEPROM24xx_Read(0x00, rx_buf, rx_len);
参数说明
dev_addr:设备地址(7bit 或左移后地址,取决于底层驱动规范)page_size:页大小(必须与芯片手册一致)mem_addr_size:地址字节数(1 或 2)write_cycle_ms:每次页写后的写周期等待timeout_ms:底层总线访问超时
注意事项
- 驱动内部会自动按页拆分写入,避免跨页写异常。
- 若你的器件使用 2 字节地址,请设置
mem_addr_size = 2。 - 若写后立即读失败,请适当增大
write_cycle_ms。
Description
Languages
C
100%