`

IIC之AT24C256 多页读写关键程序段

 
阅读更多

在写满一页后,需要结束总线,然后从新启动总线,再写入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读写24C02程序代码

    ### STM32 模拟 IIC 读写 AT24C02 程序解析 #### 一、概述 本篇文章将详细解读一个使用STM32微控制器通过模拟I2C接口对AT24C02 EEPROM进行读写的程序。AT24C02是一种非易失性存储器(EEPROM),它可以通过I2C总线...

    IIC_24C02 AT24C02 读写数据.zip_IIC_Table_at24c02_valuableggp_串口 24c0

    标题中的"IIC_24C02 AT24C02 读写数据"涉及到的是一个基于IIC协议与AT24C02 EEPROM进行数据交互的项目。IIC(Inter-Integrated Circuit)是一种用于电子设备间通信的简单、低速的串行接口,常用于微控制器与外部设备...

    蓝桥杯第十七个程序IIC At24c02的储存与读取.rar

    《蓝桥杯第十七个程序IIC At24c02的储存与读取》 在电子工程领域,特别是单片机开发中,理解和掌握IIC(Inter-Integrated Circuit)通信协议以及如何与外部存储器如At24c02进行交互是至关重要的技能。本项目围绕着...

    IIC-AT24C02

    通过对这段代码的分析,我们可以学习如何用C语言编写IIC协议的驱动程序,以及如何对AT24C02进行读写操作的函数封装。此外,"智能家居"这个文件名暗示了这种技术可能应用于智能设备中,如智能家电或智能家居控制系统...

    STC12C和C51单片机IIC读写AT24C02

    【STC12C和C51单片机IIC读写AT24C02】涉及的是微控制器与外部存储器之间的通信技术。STC12C和89C5A是两种常见的51系列单片机,它们在电子系统设计中广泛用于数据处理和控制任务。而AT24C02是一款I²C(Inter-...

    AT24c16工程(i2c io模拟)

    通过这个地址,主机可以向AT24C16发送读写命令。 在工程实现中,首先要配置STM的I²C外设,包括设置GPIO端口为复用开漏模式,设置时钟速度,以及初始化I²C外设。接着,可以使用软件库函数或者直接操作寄存器来执行...

    IIC-24C04与数码管.rar

    实现这种功能的关键在于编写有效的IIC通信程序和数码管驱动程序。IIC通信程序需要处理启动、停止、数据传输和应答等信号,确保数据正确无误地写入或读出24C04。数码管驱动程序则需要根据24C04返回的数据,控制相应的...

    IIC-24C02.zip_24c02 IIC

    描述中提到的"利用软件模拟IIC总线读写24C02的程序"意味着这个程序并不依赖硬件IIC接口,而是通过软件层面的实现来模拟IIC通信。这种方法在没有硬件IIC接口或者需要在开发阶段测试IIC设备时非常有用。软件模拟通常...

    单片机C语言Proteus仿真实例IIC-24C04与数码管

    - 实现的功能包括但不限于:初始化IIC总线、读写24C04 EEPROM、驱动数码管显示数据等。 - 关键部分代码示例: ```c #include sbit SDA = P2^1; // 定义SDA引脚 sbit SCL = P2^2; // 定义SCL引脚 void ...

    24C01的IIC 读写的c51程序

    本文将详细讲解如何使用C语言在51单片机上编写IIC通信协议来实现对24C01存储器的读写操作。24C01是一种常见的电可擦可编程只读存储器(EEPROM),常用于数据存储。IIC(Inter-Integrated Circuit)是一种由飞利浦...

    STM32的IIC(24C02)通信程序.zip

    - 24C02具有256字节的存储空间,分为16个页面,每页16字节。 - 写操作前需要先执行读操作,确保数据未被修改(防止重复写入)。 - 每次写操作后,24C02需要一定时间完成内部操作,这段时间称为写周期。 3. 24C02...

    06 IIC-24C04与数码管.zip

    标题中的“06 IIC-24C04与数码管”表明了这个压缩包文件主要涉及的是关于IIC通信协议下24C04存储器与数码管显示的实践应用。24C04是一种常见的电可擦除可编程只读存储器(EEPROM),在电子设计中常用于数据存储。IIC...

    IIC-24C04与蜂鸣器

    这段代码可能包括初始化IIC接口,设置24C04的地址,发送读写命令,以及处理数据交换的过程。此外,还需要编写控制蜂鸣器的函数,根据需要启动或停止蜂鸣器,并调整其频率。 文件“05 IIC-24C04与蜂鸣器”可能包含了...

    IIC_24C02.rar_stm32f103 24C02_stm32f103 iic

    对于24C02,读写操作可能涉及到读取或写入单个字节,也可能涉及连续读写多个字节。 在提供的源程序中,应当包含了配置STM32F103 I²C外设、发送I²C命令、读取或写入24C02数据的函数。这些函数可能包括`IIC_Init()`...

    PIC16F877 IO模拟UART及读写24C01工程

    PIC16F877使用12M晶振,使用定时器模拟UART,并且用普通IO口模拟IIC对24C01进行读写。程序功能:使用串口调试助手,发送一段字符串,8位以内,并以!结束。单片机会接收并存储到24C01里,然后再读取出来发送回PC。...

    DSP_TMS320F28335_I2C硬件实现_dsp28335_dsp

    在本文中,我们将深入探讨如何使用TMS320F28335数字信号处理器(DSP)的I²C(Inter-Integrated Circuit)模块来实现与外部存储器AT24C02的通信。TMS320F28335是一款高性能的浮点DSP,广泛应用于控制和信号处理领域...

    IIC-24C04与数码管

    标题中的"IIC-24C04与数码管"指的是使用单片机通过I²C总线与24C04存储器进行通信,并利用该存储器的数据来驱动数码管显示。24C04是一种常见的电可擦除只读存储器(EEPROM),常用于在电子设备中存储配置信息或数据...

    stm32通过iic读取24c02例程

    在Sunny号实验19-软件模拟IIC读写AT24C02中,你可能会看到以下关键代码段: - 初始化GPIO和I²C外设的配置函数调用,如`HAL_GPIO_Init()`和`HAL_I2C_Init()`。 - 发送开始和停止条件的函数,如`HAL_I2C_Master_...

Global site tag (gtag.js) - Google Analytics