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

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擦除)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 无法安装32位win7系统(无法安装32位版本)2024-12-11 07:27:06
  • 16进制转换工具(16进制转换工具二进制)2024-12-11 07:27:06
  • 返回上一级目录的快捷键(返回上一层目录使用下面哪个指令)2024-12-11 07:27:06
  • 字体图标的用法(字体图标的用法是什么)2024-12-11 07:27:06
  • 3dtiles(3DTiles转换)2024-12-11 07:27:06
  • ip跟域名(ip与域名的对应关系)2024-12-11 07:27:06
  • tone翻译成中文(toll翻译成中文)2024-12-11 07:27:06
  • 网上聊天网页(聊天 网页)2024-12-11 07:27:06
  • 最终幻想7战斗系统在哪(最终幻想7全战斗报告)2024-12-11 07:27:06
  • 接口403错误是什么(接口403是什么意思)2024-12-11 07:27:06
  • 全屏图片