AT24C02, 2K SERIAL EEPROM: Internally organized with 32 pages of 8 bytes each,the 2K requires an 8-bit data word address for random word addressing。
楼主计算地址计算可能有问题。不是最多256页,是一个片最多32页,每页8字节。当超过这个范围以后,硬件地址就要变更,比如256,这个地址应该是在第二片,第0个字节。硬件地址应该是A1,写入地址应该是0,依次类推。
楼主计算地址计算可能有问题。不是最多256页,是一个片最多32页,每页8字节。当超过这个范围以后,硬件地址就要变更,比如256,这个地址应该是在第二片,第0个字节。硬件地址应该是A1,写入地址应该是0,依次类推。
评分
查看全部评分
#define I2C_PAGESIZE 8 //每页8个字节
每页8个字节:不对吧?
评分
查看全部评分
24c02.pdf
2018-8-27 11:35 上传
点击文件名下载附件
下载积分: ST金币 -1147.29 KB, 下载次数: 3, 下载积分: ST金币 -1
关键是我只是连续写了3个字节,没有超过地址范围,也无法实现,一个字节一个字节的写就可以实现
评分
查看全部评分
我没有跨页,连续写三个字节无法实现
跨页是指地址从上页尾到下页首写入,根据你的型号就是地址从8n+7 -> 8(n+1)写入,只要写多过1个字节都有可能出现跨页。
看了一下你的程序,你写入的是7,8,9三个地址,所以存在跨页的现象。
其次,你初始化的时候最好把IO速度设置成high。
评分
查看全部评分
u8 I2C_PageWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint8_t n)中,似乎并没有为这个做区分……
评分
查看全部评分
感谢,你说的对,我换成从1开始写三个就成功了,还想请教一下我看的那个芯片手册上没有讲到按页写具体哪些地址算一页,请问你是哪里看到的