发 帖
[问答]

模拟I2C读写24c02,可以写,但读出错,大神们帮忙看看

3411 单片机
2020-6-17 17:31:25   评论 分享淘帖 邀请回答 举报
5个回答
2020-6-17 17:37:21 评论

举报

2020-6-17 18:39:34 15评论

举报

15 条评论
  • 2020-6-17 19:31

    有呀,第一张图有个小凸起,那就是24c02的ack,开始后的第9位

    jiciwi 回复 张三: 2020-6-17 19:40

    我觉得你少一个脉冲呀,第一个脉冲是起始,后面8个的芯片地址,然后是ACK脉冲,然后是8个地址,再ACK脉冲,再8个数据脉冲,再ACK脉冲,再停止时序

    张三 回复 jiciwi: 2020-6-17 19:47

    有ack,不然我也写不进去

    jiciwi 回复 张三: 2020-6-17 19:51

    你没读出来怎么知道写进去了,然后对不对,你现在都是强制在发脉冲的

    张三 回复 jiciwi: 2020-6-17 20:00

    我用硬件配置方法可以读写,现在想移到stm32上,所有才搞模拟的i2c

  • 2020-6-17 19:41

    开始-》写指令-》内存地址-》开始-》读指令,不是这样的吗?

    jiciwi 回复 张三: 2020-6-17 19:45

    ACK也是一个脉冲,也是需要SCL脉冲的

    jiciwi 回复 张三: 2020-6-17 19:46

    你可以忽略ACK的值,但是脉冲还是要给的

    张三 回复 jiciwi: 2020-6-17 19:58

    ack肯定写了,只是瞬间被24c02拉低了,所有示波器只看到一个小突起,我用硬件只要接上示波器,就读不出来,所有也看不到它的时序

    jiciwi 回复 张三: 2020-6-17 20:01

    不是写啊,你写的时候ACK是返回,只有在读数据后才是你发的,我说的是SCL脉冲,ACK那里也需要SCL脉冲

    张三 回复 jiciwi: 2020-6-17 20:07

    真的有,开始,然后发送0xa0,然后是ack脉冲,然后是地址0x01;我截图可以看得很清楚,你可以数一下两个数据之间是不是多一个脉冲

    张三 回复 jiciwi: 2020-6-17 20:09

    第一张图和第二张图可以连起来的

    jiciwi 回复 张三: 2020-6-18 09:51

    那读的话,START->芯片地址写->ACK->写地址->ACK->START->芯片地址读->ACK->读地址->ACK->读数据

    张三 回复 jiciwi: 2020-6-18 10:08

    今天调了一下延时,发现可以读到前4位数据了,于是我在sda上加了上拉电阻就ok了

    jiciwi 回复 张三: 2020-6-18 12:33

    你原来不是说已经加了上拉电阻么

2020-6-18 03:38:16 评论

举报

2020-6-18 09:37:00 1评论

举报

1 条评论
  • 2020-6-18 11:29

    我加了上拉电阻就好了,但用硬件配置可以不用加,配置为上拉输入就好了,这个有点不舒服,最后一句话非常同意

2020-7-23 16:55:43 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

德赢Vwin官网 网

德赢Vwin官网 论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐上一条/6下一条

快速回复 返回顶部 返回列表