EEPROM芯片AT2402驱动

 1  /*************************此部分为AT2402的驱动程序使用I2C总线连接*************************************/
 2 
 3 #include<I2C.c>
 4 
 5 //AT2402的功能函数
 6 /*******************************************************************
 7                     向有子地址器件发送多字节数据函数               
 8 函数原型: bit  ISendStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no);  
 9 功能:     从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件
10           地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。
11           如果返回1表示操作成功,否则操作有误。
12 注意:    使用前必须已结束总线。
13 ********************************************************************/
14 bit ISendStr(unsigned char  sla,unsigned char  suba,unsigned char  *s,unsigned char  no)
15 {
16    unsigned char i;
17 
18    Start_I2c();               /*启动总线*/
19    SendByte(sla);             /*发送器件地址*/
20    if(ack==0)return(0);
21    SendByte(suba);            /*发送器件子地址*/
22    if(ack==0)return(0);
23 
24    for(i=0;i<no;i++)
25    {   
26      SendByte(*s);            /*发送数据*/
27      if(ack==0)return(0);
28      s++;
29    } 
30    Stop_I2c();                /*结束总线*/ 
31 
32    return(1);
33 }
34 
35 /*******************************************************************
36                     向有子地址器件读取多字节数据函数               
37 函数原型: bit  RecndStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no);  
38 功能:     从启动总线到发送地址,子地址,读数据,结束总线的全过程,从器件
39           地址sla,子地址suba,读出的内容放入s指向的存储区,读no个字节。
40            如果返回1表示操作成功,否则操作有误。
41 注意:    使用前必须已结束总线。
42 ********************************************************************/
43 bit IRcvStr(unsigned char  sla,unsigned char  suba,unsigned char  *s,unsigned char  no)
44 {
45    unsigned char i;
46 
47    Start_I2c();                  /*启动总线*/
48    SendByte(sla);                /*发送器件地址*/
49    if(ack==0)return(0);
50    SendByte(suba);               /*发送器件子地址*/
51    if(ack==0)return(0);
52 
53    Start_I2c();                 /*重新启动总线*/
54    SendByte(sla+1);
55    if(ack==0)return(0);
56    for(i=0;i<no-1;i++)
57    {   
58      *s=RcvByte();               /*发送数据*/
59       Ack_I2c(0);                /*发送就答位*/  
60      s++;
61    } 
62    *s=RcvByte();
63    Ack_I2c(1);                   /*发送非应位*/
64    Stop_I2c();                   /*结束总线*/ 
65    return(1);
66 }

转载于:https://www.cnblogs.com/sky1991/archive/2012/07/02/2573635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EEPROM存储器AT24C02驱动是一种用于控制和操作AT24C02 EEPROM芯片的软件程序。AT24C02是一种2K位串行电路编程只读存储器(EEPROM),能够以字节为单位进行读写操作。下面是一个简单的EEPROM存储器AT24C02驱动的实现示例: 首先,需要确定与AT24C02芯片通信的硬件接口。一般来说,AT24C02芯片使用I2C(TWI)总线进行通信。因此,需要确保控制器上的I2C总线控制器(如I2C模块)已正确配置和初始化。 其次,需要实现与AT24C02芯片通信的相关函数,如写入数据、读取数据等。这些函数可以通过在控制器上通过I2C总线传输控制字节和数据字节来执行相关的EEPROM操作。 例如,实现写入数据的函数,可以按照以下步骤进行: 1. 通过发出启动条件向AT24C02芯片发送设备地址。设备地址应包括芯片的固定地址和A0、A1和A2引脚的状态,用来识别芯片的物理位置。 2. 发送一个字节的内存地址,确定要写入数据的EEPROM存储器地址。 3. 发送要写入的数据字节。 4. 等待写操作完成,可以通过轮询芯片或等待I2C总线中断来检查。 5. 发送停止位,结束写操作。 同样,读取数据的函数也可以按照类似的步骤进行实现,只不过在发送内存地址之后需要切换到读操作模式,并在读取数据后保存数据字节。 在驱动程序的应用中,可以使用这些函数来存储和检索数据。通过提供适当的地址,可以将数据写入或读取到AT24C02芯片的特定地址中。此外,除了基本的读写功能之外,还可以实现其他操作,如块写入、页写入等。 总之,EEPROM存储器AT24C02驱动程序通过I2C总线控制器与AT24C02芯片进行通信,实现了对EEPROM芯片的读写操作。驱动程序应提供适当的函数来进行数据存储和检索,并可以根据应用需求扩展其他功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值