打印

AT24c512读写数据问题

[复制链接]
4004|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sanzanglong|  楼主 | 2011-6-1 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
高手们小弟对24C512写进10000个数据,地址是从0到10000这么写的数据都是8位的0x01-0xFF,这些,但是在我读出来的时候,读到第6144个址址时就返回到0了,读到的是0地址里的数据,6145读1,循环了不知道是为什么,谢大虾们帮帮小弟我很菜的呵呵。那位高手有读写24C512的程序能发给小弟吗谢谢了,我的邮箱是sanzang_xulong@126.com.

/*-----------------------------------------------
调用方式:void write24c512(uint address,uchar ddata)
函数说明:写数据到24c512的指定地址(字节写)
-----------------------------------------------*/
void WriteFm24c512(uint address,uchar ddata)
{
//EA=0;  //避免与串口通讯等中断冲突
start_bit();
write_8bit(0xA0);
ack();
write_8bit(address/256);
ack();
write_8bit(address%256);
ack();
write_8bit(ddata);
ack();   
stop_bit();
//EA=1;
}
void delay1(uint z)//延时为 1ms
{  
uchar x,x1;
for(;z>0;z--)
{
for(x=0;x<114;x++)
{
for(x1=0;x1<1;x1++);
}
}
}  


/*----------------------------------------------
调用方式:uchar read24c512(uint address)
函数说明:读24c512指定地址数据(字节读)
-----------------------------------------------*/
uchar ReadFm24c512(uint address)
{
uchar data rdata;
uchar i=8;
//EA=0;//避免与串口通讯等中断冲突
start_bit();
write_8bit(0xA0);
ack();
write_8bit(address/256);
ack();//伪写
write_8bit(address%256);
ack();
start_bit();
write_8bit(0xA1);
ack();
while(i--)
{
  rdata<<=1;
  SCL=0;
  _nop_();
  SCL=1;
  if(SDA) rdata|=0x01;
}
no_ack();
stop_bit();
//EA=1;
return rdata;
}

相关帖子

沙发
sanzanglong|  楼主 | 2011-6-1 21:30 | 只看该作者
高手们提点意见也好啊谢谢了。

使用特权

评论回复
板凳
yjhon| | 2011-6-1 22:03 | 只看该作者
只记得24CXX的页写很**

使用特权

评论回复
地板
sanzanglong|  楼主 | 2011-6-2 09:26 | 只看该作者
谢了兄弟,这个我自己搞定了,原来是我自己类型搞的有些问题。

使用特权

评论回复
5
zjy.zz| | 2011-6-18 11:01 | 只看该作者
这种程序网上很多了,下载个直接写进去试试,好后再对比着调你的

使用特权

评论回复
6
古道初飘雪| | 2015-6-23 09:43 | 只看该作者
sanzanglong 发表于 2011-6-2 09:26
谢了兄弟,这个我自己搞定了,原来是我自己类型搞的有些问题。

楼主  能给发一份你的这个改后的程序吗 小弟现在也弄这个  编的老出错 谢谢咯 邮箱1033051871@qq.com

使用特权

评论回复
7
wly123| | 2015-7-29 10:14 | 只看该作者
同求1215221330@qq.com,谢谢了!!!

使用特权

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

本版积分规则

0

主题

4

帖子

1

粉丝