找回密码
 立即注册
查看: 234|回复: 9

用两片8H8K64U芯片做主从机I2C通信,从机接到数据都会*2

[复制链接]

该用户从未签到

1

主题

5

回帖

23

积分

新手上路

积分
23
发表于 2024-2-19 22:48:48 | 显示全部楼层 |阅读模式
两片8H8K64U芯片做主从机I2C通信,从机接到数据都会*2   主机发1从机收到2   主机发2从机收到4   主机发4从机收到8,都会大两倍,有没有大师碰到过
回复 送花

使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 147 天

    [LV.7]常住居民III

    39

    主题

    887

    回帖

    4126

    积分

    荣誉版主

    积分
    4126
    发表于 2024-2-20 08:22:38 | 显示全部楼层
    降低通讯速率,  或 加上拉电阻,
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 111 天

    [LV.6]常住居民II

    10

    主题

    583

    回帖

    930

    积分

    高级会员

    积分
    930
    发表于 2024-2-20 08:55:36 | 显示全部楼层
    代码发上来让大家一起看看啊
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:32
  • 签到天数: 95 天

    [LV.6]常住居民II

    70

    主题

    611

    回帖

    1888

    积分

    超级版主

    积分
    1888
    QQ
    发表于 2024-2-20 08:59:23 | 显示全部楼层
    热线19952583534
    www.STCAI.com
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 163 天

    [LV.7]常住居民III

    9

    主题

    310

    回帖

    3785

    积分

    荣誉版主

    积分
    3785
    发表于 2024-2-20 10:14:19 | 显示全部楼层
    检查你的代码逻辑是不是哪里多了一个乘法或移位
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    回帖

    23

    积分

    新手上路

    积分
    23
     楼主| 发表于 2024-2-20 20:02:45 | 显示全部楼层
    LAOXU 发表于 2024-2-20 08:22
    降低通讯速率,  或 加上拉电阻,

    内置上拉电阻
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    回帖

    23

    积分

    新手上路

    积分
    23
     楼主| 发表于 2024-2-20 20:03:53 | 显示全部楼层
    21cnsound 发表于 2024-2-20 08:55
    代码发上来让大家一起看看啊

    是官方测试代码
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    回帖

    23

    积分

    新手上路

    积分
    23
     楼主| 发表于 2024-2-20 20:04:38 | 显示全部楼层
    kksk 发表于 2024-2-20 10:14
    检查你的代码逻辑是不是哪里多了一个乘法或移位

    没有呢,我用官方测试代码
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    回帖

    23

    积分

    新手上路

    积分
    23
     楼主| 发表于 2024-2-20 20:29:57 | 显示全部楼层
    I2CCFG = 0x97;  //12M  速度配6  12/0.4/2-5 /2  //使能I2C从机模式
        I2CSLADR = 0x5a;                          
        I2CSLST = 0x00;
        I2CSLCR = 0x00;                             //禁止从机模式中断

       

        while (1)
        {
            if (I2CSLST & 0x40) //处理START事件STAIF:
            {
                I2CSLST &= ~0x40;                   //处理START事件
            if (I2CSLST & 0x20)   //处理RECV事件
            {
                I2CSLST &= ~0x20;                   //处理RECV事件
               
             buffer[0] = I2CRXD;
                           
                                   
                                   
                                    }
                if (I2CSLST & 0x10)
                                                                          
           {
                I2CSLST &= ~0x10;                   //处理SEND事件
              if (I2CSLST & 0x02)//接收到NAK则停止读取数据
               {
                              
            
                                    I2CSLST &= ~0x02;


                                             }
             
           }
          
                                   
                                   
                                    }
            


                             if (I2CSLST & 0x08)
            {
                I2CSLST &= ~0x08;                   //处理STOP事件
                isda = 1;
                isma = 1;
            }
       
                Dis_seg_buff();        //1638显示函数


                   
                   
                    }
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    回帖

    23

    积分

    新手上路

    积分
    23
     楼主| 发表于 2024-2-20 20:31:00 | 显示全部楼层
            void i2c_hs_xie(void)//写
    {

      I2CCFG = 0xff;
      // I2CCFG = 0xd7;            // 1100 000+01 0111  40M  速度配23  40/0.4/2-5 /2   //使能I2C主机模式
       I2CMSST = 0x00;

       Start();                                    //发送起始命令
       SendData(0x5a);                             //发送设备地址(010_1101B)+写命令(0B)
       RecvACK();

       
             SendData( iic_sz_rt[i++]);                             //写测试数据1
                              //写测试数据2
       RecvACK();
       Stop();                                     //发送停止命令
      



    }       
           

    主机程序 晶振40M
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 22:39 , Processed in 0.070210 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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