在写满一页后,需要结束总线,然后从新启动总线,再写入sla,写入下页的suba,写入数据。。。。
在结束总线和启动总线间要一定要加入延时,长点!!
extern unsigned char enumer; bit ISendStr(unsigned char sla,unsigned int suba,unsigned char *s,unsigned char no) { unsigned char i; unsigned int k;// Start_I2c(); /*启动总线*/ SendByte(sla); /*发送器件地址*/ if(ack==0)return(0); /////////////////////////////////////////// if(AT24C256 == AT24C256) { SendByte((unsigned char)(suba >> 8));//把整型数据转换为字符型数据:弃高取低,只取低8位.
//如果容量大于32K位,使用16位地址寻址,写入高八位地址 if(ack==0) return(0); } SendByte((unsigned char)suba); /*发送器件子地址*/ if(ack==0)return(0); for(i=0;i<no;i++) { //******************此段判断页**************************// if(suba%64==0) { Stop_I2c(); for(k=0;k<10000;k++); Start_I2c(); /*启动总线*/ SendByte(sla); /*发送器件地址*/ if(ack==0)return(0); /// if(AT24C256 == AT24C256) { SendByte((unsigned char)(suba >> 8));//把整型数据转换为字符型数据:弃高取低,只取低8位.
//如果容量大于32K位,使用16位地址寻址,写入高八位地址 if(ack==0) return(0); } SendByte((unsigned char)suba); /*发送器件子地址*/ if(ack==0)return(0); } suba++; //********************此段判断页*****************************// /*发送数据*/ SendByte(*s++); if(ack==1) continue;//////////////return(0);//////////////////////////// senddd('X'); //没有到这···· ///return(0);//// } Stop_I2c(); /*结束总线*/ return(1); }
相关推荐
### STM32 模拟 IIC 读写 AT24C02 程序解析 #### 一、概述 本篇文章将详细解读一个使用STM32微控制器通过模拟I2C接口对AT24C02 EEPROM进行读写的程序。AT24C02是一种非易失性存储器(EEPROM),它可以通过I2C总线...
标题中的"IIC_24C02 AT24C02 读写数据"涉及到的是一个基于IIC协议与AT24C02 EEPROM进行数据交互的项目。IIC(Inter-Integrated Circuit)是一种用于电子设备间通信的简单、低速的串行接口,常用于微控制器与外部设备...
《蓝桥杯第十七个程序IIC At24c02的储存与读取》 在电子工程领域,特别是单片机开发中,理解和掌握IIC(Inter-Integrated Circuit)通信协议以及如何与外部存储器如At24c02进行交互是至关重要的技能。本项目围绕着...
通过对这段代码的分析,我们可以学习如何用C语言编写IIC协议的驱动程序,以及如何对AT24C02进行读写操作的函数封装。此外,"智能家居"这个文件名暗示了这种技术可能应用于智能设备中,如智能家电或智能家居控制系统...
【STC12C和C51单片机IIC读写AT24C02】涉及的是微控制器与外部存储器之间的通信技术。STC12C和89C5A是两种常见的51系列单片机,它们在电子系统设计中广泛用于数据处理和控制任务。而AT24C02是一款I²C(Inter-...
通过这个地址,主机可以向AT24C16发送读写命令。 在工程实现中,首先要配置STM的I²C外设,包括设置GPIO端口为复用开漏模式,设置时钟速度,以及初始化I²C外设。接着,可以使用软件库函数或者直接操作寄存器来执行...
实现这种功能的关键在于编写有效的IIC通信程序和数码管驱动程序。IIC通信程序需要处理启动、停止、数据传输和应答等信号,确保数据正确无误地写入或读出24C04。数码管驱动程序则需要根据24C04返回的数据,控制相应的...
描述中提到的"利用软件模拟IIC总线读写24C02的程序"意味着这个程序并不依赖硬件IIC接口,而是通过软件层面的实现来模拟IIC通信。这种方法在没有硬件IIC接口或者需要在开发阶段测试IIC设备时非常有用。软件模拟通常...
- 实现的功能包括但不限于:初始化IIC总线、读写24C04 EEPROM、驱动数码管显示数据等。 - 关键部分代码示例: ```c #include sbit SDA = P2^1; // 定义SDA引脚 sbit SCL = P2^2; // 定义SCL引脚 void ...
本文将详细讲解如何使用C语言在51单片机上编写IIC通信协议来实现对24C01存储器的读写操作。24C01是一种常见的电可擦可编程只读存储器(EEPROM),常用于数据存储。IIC(Inter-Integrated Circuit)是一种由飞利浦...
- 24C02具有256字节的存储空间,分为16个页面,每页16字节。 - 写操作前需要先执行读操作,确保数据未被修改(防止重复写入)。 - 每次写操作后,24C02需要一定时间完成内部操作,这段时间称为写周期。 3. 24C02...
标题中的“06 IIC-24C04与数码管”表明了这个压缩包文件主要涉及的是关于IIC通信协议下24C04存储器与数码管显示的实践应用。24C04是一种常见的电可擦除可编程只读存储器(EEPROM),在电子设计中常用于数据存储。IIC...
这段代码可能包括初始化IIC接口,设置24C04的地址,发送读写命令,以及处理数据交换的过程。此外,还需要编写控制蜂鸣器的函数,根据需要启动或停止蜂鸣器,并调整其频率。 文件“05 IIC-24C04与蜂鸣器”可能包含了...
对于24C02,读写操作可能涉及到读取或写入单个字节,也可能涉及连续读写多个字节。 在提供的源程序中,应当包含了配置STM32F103 I²C外设、发送I²C命令、读取或写入24C02数据的函数。这些函数可能包括`IIC_Init()`...
PIC16F877使用12M晶振,使用定时器模拟UART,并且用普通IO口模拟IIC对24C01进行读写。程序功能:使用串口调试助手,发送一段字符串,8位以内,并以!结束。单片机会接收并存储到24C01里,然后再读取出来发送回PC。...
在本文中,我们将深入探讨如何使用TMS320F28335数字信号处理器(DSP)的I²C(Inter-Integrated Circuit)模块来实现与外部存储器AT24C02的通信。TMS320F28335是一款高性能的浮点DSP,广泛应用于控制和信号处理领域...
标题中的"IIC-24C04与数码管"指的是使用单片机通过I²C总线与24C04存储器进行通信,并利用该存储器的数据来驱动数码管显示。24C04是一种常见的电可擦除只读存储器(EEPROM),常用于在电子设备中存储配置信息或数据...
在Sunny号实验19-软件模拟IIC读写AT24C02中,你可能会看到以下关键代码段: - 初始化GPIO和I²C外设的配置函数调用,如`HAL_GPIO_Init()`和`HAL_I2C_Init()`。 - 发送开始和停止条件的函数,如`HAL_I2C_Master_...