打印

24C16读写问题

[复制链接]
6106|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zlj2008|  楼主 | 2010-2-27 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zlj2008 于 2010-2-27 22:18 编辑

请高手帮忙关于24C16的问题,我已经搞了5天了,就是不行. 晶振是11.0592 CPU为M8
问题是这样的:

     1. 写24C16时,按页写,一次写入16字节,用I2C_Write(Uchar* dat, Uint address)调用,数据是一个数组用指针调用,地址是0x0001,---- I2C_Write(* data,0x0001);
这样调用后,可以正确写入,但 0001-00ff地址范围的全部数据都是写入的那16字节.不知是何故,如果地址改为0101-01ff中的任意地址,写入时,最后两个字节不能写入.

    急盼高手帮助解决.(注 调试环境为IAR ,若你运行以下附件,请改一下头文件)

16_80_AVR.rar

6.75 KB

相关帖子

沙发
古道热肠| | 2010-2-27 22:19 | 只看该作者
先用字节写试试吧,过去在51上用字节试过,没遇什么怪事,只时这个地址位选择位比较多,要将地址线性化要分地址边界处理,不如24C32以上的连续地址好用.

使用特权

评论回复
板凳
zlj2008|  楼主 | 2010-2-27 23:12 | 只看该作者
谢谢楼上的朋友提示,我也试过用字节写,但还是不行, 我再请教一下,2416的地址是 0-07FF吗?0页的地址是0-7F吗?1页是80-8F吗......高三位地址与1010相加后,再加一个读写位, 之后再发一个地址的后8位, 然后就可以读写数据了?是这样吗?

使用特权

评论回复
地板
zlj2008|  楼主 | 2010-2-28 19:46 | 只看该作者
朋友们,帮个忙吧,如果将一个字节数据写入 00201, 再读 00201-002ff 的数据,全是刚刚写入的数据.为什么啊?

使用特权

评论回复
5
古道热肠| | 2010-3-1 00:05 | 只看该作者
分两步走,
第一步,用通用编程器写数据到24C16中,用程序读内容。验证读驱动准确无误
第二步,写程序写数据到24C16中,用通常编程器读芯片中的内容。验证写程序无误
走完此二步,应该是能搞定的。
呵呵,我的体会是,先理好思路,准备好相关工具(参考软件和芯片文档要备齐),真正开始干活时很少走弯路。

使用特权

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

本版积分规则

0

主题

12

帖子

1

粉丝