当前位置:网站首页 > 编程语言 > 正文

at24c02擦写次数(at24c02擦除)



在STM32使用硬件I2C读写AT24C02 EEPROM(一)中我们读写了eeprom的一个字节,但是我们想要读写多个字节应该怎么办?

HAL_I2C_Mem_Write
HAL_I2C_Mem_Read
对这个两个函数进行了封装
uint8_t at24cxx_read(uint16_t addr, uint8_t *pbuf, uint16_t datalen)
{

 

}
uint8_t at24cxx_write(uint16_t addr, uint8_t *pbuf, uint16_t datalen)
{

 

}
在main函数中while循环读写
在这里插入图片描述

在这里插入图片描述
读出来的结果都是0,读写失败
什么原因呢?查找资料写完不能马上读需要等待写完,很奇怪,所有加个延时吧
在这里插入图片描述

在这里插入图片描述
可以了正常读写了

那读写任意字节呢,多读写些字节
在这里插入图片描述

在这里插入图片描述

什么情况,多读写了两位就不行了?

通过页写入每次只能最多写8个字节,要不就只能按一个字节写,尝试了几种方法最终还是以单个字节写的方式来改。
uint8_t at24cxx_hal_writeonebyte(uint16_t WriteAddr,uint8_t DataToWrite)
{
if(EE_TYPE < AT24C16)
return HAL_I2C_Mem_Write(&hi2c2,AT24C02_ADDR_WRITE,WriteAddr,I2C_MEMADD_SIZE_8BIT,&DataToWrite,1,1000);
else
return HAL_I2C_Mem_Write(&hi2c2,AT24C02_ADDR_WRITE,WriteAddr,I2C_MEMADD_SIZE_16BIT,&DataToWrite,1,1000);
}

 

}

在这里插入图片描述

使用stm32 硬件i2c读写at24c02 芯片需要注意延时否则会锁死和多字节读写的限制,谨慎处理读写操作中的细节,可以有效解决通信中遇到的问题,确保数据的可靠存储和读取

STM32使用硬件I2C读写AT24C02 EEPROM,实现任意字节读写

到此这篇at24c02擦写次数(at24c02擦除)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 程序卸载快捷键(快捷键打开卸载程序界面)2024-12-11 07:27:06
  • 无法安装32位win7系统(无法安装32位版本)2024-12-11 07:27:06
  • win10卸载win7双系统(卸载win10装win7)2024-12-11 07:27:06
  • 蓝牙地址不可用怎么回事安卓(安卓手机蓝牙地址不可用)2024-12-11 07:27:06
  • 16进制转换工具(16进制转换工具二进制)2024-12-11 07:27:06
  • 指数与对数关系图(指数与对数的运算法则及指数与对数的关系)2024-12-11 07:27:06
  • gps定位器虚拟模拟器(虚拟gps定位器安卓下载)2024-12-11 07:27:06
  • 8251内同步和外同步(8251内同步和外同步区别)2024-12-11 07:27:06
  • 蓝牙地址怎么查苹果(苹果怎么查蓝牙定位)2024-12-11 07:27:06
  • aodnet复现(dexnet 复现)2024-12-11 07:27:06
  • 全屏图片