当前位置: 首页 > article >正文

蓝桥杯之AT24C02的页写页读

一、原理:

1、页写:一次性向AT24C02里的多个数据存储单元地址写入多个数据

        (1)在AT24C02的页写模式下,每次写入数据后,存储单元地址会自动加1

        (2)一页有8个数据存储单元,蓝桥杯的AT24C02一共有256个数据存储单元,也就是说,蓝桥杯的AT24C02只有256 / 8 = 32个页。

        (3)如果一页写入了8个以上的数据,那么存储单元地址就会从头开始,比如从0x00开始页写,一直写到了0x07,这时如果继续页写,就会从0x00开始覆盖原来的内容。

        (4)在一次页写里面,无需任何的延时;但是在多次页写时,要有5ms的延时。以下是Deepseek的回复。

 2、页读:一次性向AT24C02里的多个数据存储单元地址读取多个数据(与上述页写原理类似,不做重复)

注意:在写入设备地址后,还需要写入开始页读的存储单元地址,下述原理图未标出。

二、代码:(只给出页写页读代码,其他代码未给出,请自己写)

注:写入之后不能立即读取,要延时10ms左右

1、页写代码

/*
函数:AT24C02页写函数
参数:*Data:要写入的数据数组的首地址,Address:页写的首地址(最好是8的倍数,比如0x00,0x08,0x10等等),num:Data数组的长度
功能:一次性往AT24C02里的多个数据存储地址写入多个字节数据
返回值:无
*/
void AT24C02_Page_Write(unsigned char *Data,Address,num)
{
	I2CStart();
	I2CSendByte(0xA0);
	I2CWaitAck();
	I2CSendByte(Address);
	I2CWaitAck();
	while(num--)
	{
		I2CSendByte(*Data++);
		I2CWaitAck();
	}
	I2CStop();
	Delayms(5);  // 进行多次页写时,要加一个5ms延时,单次页写则不用加
}

2、页读代码

/*
函数:AT24C02页读函数
参数:*Data:要写入的数据数组的首地址,Address:页写的首地址(最好是8的倍数,比如0x00,0x08,0x10等等),num:Data数组的长度
功能:一次性往AT24C02里的多个数据存储地址读取多个字节数据
返回值:无
*/
void AT24C02_Page_Read(unsigned char *Data,Address,num)
{
	unsigned char Temp;
	I2CStart();
	I2CSendByte(0xA0);
	I2CWaitAck();
	I2CSendByte(Address);
	I2CWaitAck();
	
	I2CStart();
	I2CSendByte(0xA1);
	I2CWaitAck();
	while(num--)
	{
		*Data++ = I2CReceiveByte();
		if(num != 0)  I2CSendAck(0);  // 没读完
		if(num == 0)  I2CSendAck(1);  // 读完了
	}
	I2CStop();
}


http://www.kler.cn/a/594041.html

相关文章:

  • 【OMCI实践】【案例分享】通过OLT升级ONT未自动重启问题分析
  • LeetCode 热题 100_跳跃游戏 II(79_45_中等_C++)(贪心算法)
  • LeeCode题库第五十八题
  • 信号的捕捉(操作部分)
  • C#从入门到精通(1)
  • yarn install 出现certificate has expired报错问题
  • 算法题(102):八皇后
  • centos7/8/9安装dockerdocker-compose
  • 车载以太网网络测试-17【传输层-TCP】
  • 理想发布的下一代自动驾驶架构MindVLA是什么?
  • 【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(七) -> JS动画(二)
  • 进程地址空间(上)【Linux】
  • prompt工程
  • 【LangChain入门 4 Prompts组件】提示词追加示例 FewShotPromptTemplate和示例选择器ExampleSelector
  • docker部署dify
  • xss-labs第八、九关卡以及XSS GAME的Ok,Boomer关卡
  • uniapp中的vue组件与组件使用差异
  • 如何使用webpack预加载 CSS 中定义的资源和预加载 CSS 文件
  • 微分方程求解及推导过程
  • 微软Data Formulator:用AI重塑数据可视化的未来