找回密码
 立即注册
查看: 1883|回复: 6

STC32G12K128 I2C需帮助

[复制链接]
  • TA的每日心情
    开心
    2023-12-14 20:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7

    主题

    19

    回帖

    157

    积分

    注册会员

    积分
    157
    发表于 2023-3-21 13:11:36 | 显示全部楼层 |阅读模式
    请教STC32G12K128    I2C的读写问题。程序使用数据手册例程。

    硬件是铁电FM24C128,用模拟I2C能正常读写。但用系统I2C读写不能正常。读出数据都是FF(可能写也是错的)。为了排除FM24CL128问题,换成24c128问题同样。程序如下:
    A0,A1,A2接地。

    void Write_byte(uint addr,uchar dat)
    {
            uchar i,j;
            i=addr/256;
        j=addr%256;
        Start();                                //发送起始命令
        SendData(0xa0);                         //发送设备地址+写命令
        RecvACK();
        SendData(i);                         //发送存储地址
        RecvACK();
        SendData(j);                         //发送存储地址
            RecvACK();
        SendData(dat);
        SendNAK();
            Stop();                                 //发送停止命令
    }
    uchar ReadNbyte(uint addr)
    {
             uchar i,j;
            i=addr/256;
        j=addr%256;
        Start();                                //发送起始命令
        SendData(0xa0);                         //发送设备地址+写命令
        RecvACK();
        SendData(i);                         //发送存储地址
        RecvACK();
        SendData(j);                         //发送存储地址
        RecvACK();
        Start();                                //发送起始命令
        SendData(0xa1);                         //发送设备地址+读命令
        RecvACK();
            Stop();
        return i;                            //发送停止命令
    }

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-30 09:05
  • 签到天数: 79 天

    [LV.6]常住居民II

    9

    主题

    170

    回帖

    1703

    积分

    版主

    积分
    1703
    发表于 2023-3-21 16:24:29 | 显示全部楼层
    可参考STC32G实验箱例程包例子“28-I2C主机模式访问AT24C02程序”。用示波器测量I2C接口信号,确认发完数据后是否能收发ACK信号
    7O46(`GC}$(4X2L1FX}S3}5.png

    STC32G实验箱-DEMO-CODE-20230309.zip

    24.38 MB, 下载次数: 49

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

    积分
    14106
    发表于 2023-3-21 18:18:22 | 显示全部楼层
    如外部没加10K上拉电阻,你要打开内部4K上拉电阻,最好将你原理图的PDF发上来
  • TA的每日心情
    开心
    2023-12-14 20:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7

    主题

    19

    回帖

    157

    积分

    注册会员

    积分
    157
     楼主| 发表于 2023-3-21 18:30:14 | 显示全部楼层
    神农鼎 发表于 2023-3-21 18:18
    如外部没加10K上拉电阻,你要打开内部4K上拉电阻,最好将你原理图的PDF发上来 ...

    两个口上都有10K上拉
  • TA的每日心情
    开心
    2023-12-14 20:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7

    主题

    19

    回帖

    157

    积分

    注册会员

    积分
    157
     楼主| 发表于 2023-3-21 18:32:23 | 显示全部楼层
    用的是屠龙刀实验板

    点评

    zhp
    对于这种情况,你需要对设备返回的ACK信号进行判断一下 看看信号究竟是ACK还是NAK 如果是NAK,说明设备根本没有相应,读取的数据一定FF 建议最好用示波器或者LA抓一下波形看看  详情 回复 发表于 2023-3-21 18:59
  • TA的每日心情
    开心
    2024-5-11 09:06
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    16

    主题

    724

    回帖

    2578

    积分

    超级版主

    积分
    2578
    发表于 2023-3-21 18:59:57 | 显示全部楼层
    神清气爽 发表于 2023-3-21 18:32
    用的是屠龙刀实验板

    对于这种情况,你需要对设备返回的ACK信号进行判断一下
    看看信号究竟是ACK还是NAK
    如果是NAK,说明设备根本没有相应,读取的数据一定FF

    建议最好用示波器或者LA抓一下波形看看
  • TA的每日心情
    开心
    2023-12-14 20:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    7

    主题

    19

    回帖

    157

    积分

    注册会员

    积分
    157
     楼主| 发表于 2023-11-12 13:14:18 | 显示全部楼层
    内部上拉了4K电阻,并且两个口成开路输入就成功了。如果不是开路就不行。不知道你们是不是必须设成开路
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 07:25 , Processed in 0.068880 second(s), 60 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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