打印
[STM32]

写EEPROM 24C16一个字节为什么要延时4MS以上的时间?

[复制链接]
6147|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
action99|  楼主 | 2016-10-26 17:04 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
//AT24CXX指定地址写入一个数据
//WriteAddr :写入数据的目的地址
//DataToWrite:要写入的数据


voidAT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite){
     u16ju;
     IIC_Start();
    if(EE_TYPE>AT24C16)        {
               IIC_Send_Byte(0XA0);           //发送写命令
               IIC_Wait_Ack();
              IIC_Send_Byte(WriteAddr>>8);//发送高地址
    }else        {       
              ju=WriteAddr/256;
          IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));  //发送器件地址0XA0,写数据
    }

     IIC_Wait_Ack();
        ju=WriteAddr%256;
              IIC_Send_Byte(WriteAddr%256);        //发送低地址         
     IIC_Wait_Ack();
     IIC_Send_Byte(DataToWrite);             //发送字节                                                        IIC_Wait_Ack();
               IIC_Stop();                             //产生一个停止条件
     delay_ms(4);   
}


每写一个字节都需要延时一个4MS的时间,如果少于4MS数据就会出错,这是为什么?如果需要同时写入100个字节就需要400MS,时间也太浪费在里面了吧,请大神指教!!!!!!!!!!在线等 。。。。





相关帖子

沙发
action99|  楼主 | 2016-10-26 17:08 | 显示全部楼层
希望有大哥指教,谢谢。在线等

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

189

帖子

2

粉丝