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

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

[复制链接]

1

主题

5

回帖

23

积分

新手上路

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:172
  • 最近打卡:2025-04-28 08:49:07
已绑定手机

90

主题

961

回帖

2318

积分

超级版主

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:328
  • 最近打卡:2025-03-09 19:40:01

9

主题

328

回帖

4501

积分

荣誉版主

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

使用道具 举报 送花

1

主题

5

回帖

23

积分

新手上路

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

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

使用道具 举报 送花

1

主题

5

回帖

23

积分

新手上路

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

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

使用道具 举报 送花

1

主题

5

回帖

23

积分

新手上路

积分
23
发表于 2024-2-20 20:04:38 | 显示全部楼层
kk*** 发表于 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, 2025-5-3 00:04 , Processed in 0.140518 second(s), 118 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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