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

蓝桥杯之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.dtcms.com/a/83122.html

相关文章:

  • 【Spring 默认是否管理 Request 和 Session Bean 的生命周期?】
  • OpenCV 基础模块 Python 版
  • MySQL 设置允许远程连接完整指南:安全与效率并重
  • 小白闯AI:Llama模型Lora中文微调实战
  • k8s运维 设置Pod实现JVM内存根据容器内存动态调整
  • 车载以太网网络测试-20【传输层-DOIP协议-3】
  • OpenCV图像处理基础2
  • 内网穿透的应用-如何用Docker本地部署轻量级个人云盘ZFile手机电脑异地远程访问
  • 计算属性set方法没被执行的原因
  • React如何导入md5,把密码password进行md5加密
  • uni-app——数据缓存API
  • 深入解析 Java Stream API:筛选根节点的优雅实现!!!
  • 论文阅读笔记:Denoising Diffusion Probabilistic Models (2)
  • Jenkins Pipeline
  • 详解套接字 Socket 与网络 IO 模型演进
  • Android使用RxHttp进行国密4加密解密
  • 如何在IPhone 16Pro上运行python文件?
  • SQL Server 2014 (x64) 中文版安装与使用指南(附安装包)
  • 深入解析 Java Stream API:筛选子节点的优雅实现!!!
  • 金桔网桥路由版3
  • Excel(进阶篇):powerquery详解、PowerQuery的各种用法,逆透视表格、双行表头如何制作透视表、不规则数据如何制作数据透视表
  • 网络华为HCIA+HCIP 网络编程自动化
  • 《Python实战进阶》No26: CI/CD 流水线:GitHub Actions 与 Jenkins 集成
  • Neo4j GDS(Graph Data Science)库安装(Mac版)
  • 网络知识编-数据链路层(以太网 局域网通信 ARP协议 ARP 欺骗 DDos 攻击)
  • Elasticsearch零基础入门:从安装到入门
  • 紫光展锐社招
  • 详解MySQL的事务实现机制
  • 网页性能优化中 有一条叫做“避免使用未合成的动画”,请问该如何理解?
  • 【技术选型】三大 Python Web 框架全面对比