你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用软件实现AT24C02按页写不成功

[复制链接]
追梦人ll 提问时间:2018-8-27 10:22 /
想实现AT24C02的页写功能,用软件实现,发现按字节写都没问题,按页写或连续写多字节却无法实现,求大神指点,附件中有我的工程代码

i2c.zip

下载

5.56 MB, 下载次数: 30, 下载积分: ST金币 -1

收藏 评论11 发布时间:2018-8-27 10:22

举报

11个回答
追梦人ll 回答时间:2018-8-27 10:28:05
iic的.h和.c文件忘添加了,一更新自己的文件就会丢失
回答时间:2018-8-27 10:46:27
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,依次类推。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

wenyangzeng 回答时间:2018-8-27 10:59:58
本帖最后由 wenyangzeng 于 2018-8-27 11:06 编辑

#define I2C_PAGESIZE 8    //每页8个字节
每页8个字节:不对吧?
无标题.png

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

追梦人ll 回答时间:2018-8-27 11:35:56
按页写的意思不是针对一个器件吗,是对同一个器件访问起始地址后面的连续几个字节吗,你上面写的是不同器件,而我的是只针对一个器件

24c02.pdf

下载

147.29 KB, 下载次数: 3, 下载积分: ST金币 -1

追梦人ll 回答时间:2018-8-27 11:43:12
安 发表于 2018-8-27 10:46
AT24C02, 2K SERIAL EEPROM: Internally organized with 32 pages of 8 bytes each,the 2K requires an 8-b ...

关键是我只是连续写了3个字节,没有超过地址范围,也无法实现,一个字节一个字节的写就可以实现
Dandjinh 回答时间:2018-8-27 12:45:43
跨页的时候要有个延时,一般为5ms,具体看手册
24c02.jpg

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

追梦人ll 回答时间:2018-8-27 15:09:40
Dandjinh 发表于 2018-8-27 12:45
跨页的时候要有个延时,一般为5ms,具体看手册

我没有跨页,连续写三个字节无法实现
Dandjinh 回答时间:2018-8-27 19:43:13
追梦人ll 发表于 2018-8-27 15:09
我没有跨页,连续写三个字节无法实现

跨页是指地址从上页尾到下页首写入,根据你的型号就是地址从8n+7 -> 8(n+1)写入,只要写多过1个字节都有可能出现跨页。
看了一下你的程序,你写入的是7,8,9三个地址,所以存在跨页的现象。
其次,你初始化的时候最好把IO速度设置成high。
feixiang20 回答时间:2018-8-28 00:23:54
可能需要严格按照时序图来,如果读数据时最后等待发送一个应答信号将会导致有些数据无法读到

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版