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

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

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

i2c.zip

下载

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

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

举报

11个回答
electric 回答时间: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

查看全部评分

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

24c02.pdf

下载

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

electric 回答时间: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

查看全部评分

electric 回答时间: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

查看全部评分

STM1024 回答时间:2018-8-28 09:32:10
连续写多个字节的时候,IIC协议要求前面的几个字节写完后发NACK,最后一个写完发ACK,看你的函数:
u8 I2C_PageWrite(uint8_t* pBuffer, uint8_t WriteAddr, uint8_t n)中,似乎并没有为这个做区分……

评分

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

查看全部评分

electric 回答时间:2018-8-31 15:39:14
Dandjinh 发表于 2018-8-27 19:43
跨页是指地址从上页尾到下页首写入,根据你的型号就是地址从8n+7 -> 8(n+1)写入,只要写多过1个字节都有可 ...

感谢,你说的对,我换成从1开始写三个就成功了,还想请教一下我看的那个芯片手册上没有讲到按页写具体哪些地址算一页,请问你是哪里看到的

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版