找回密码
 立即注册
查看: 278|回复: 4

8H I2C Slave可以写,但是不能读,读出来是A3 FF

[复制链接]

1

主题

1

回帖

15

积分

新手上路

积分
15
发表于 2024-10-16 13:44:45 | 显示全部楼层 |阅读模式
这个是i2c slave的中断,在外面可以写成功,但是读不成功

void I2C_Isr() interrupt I2C_VECTOR
{
        char store;
        
        store = P_SW2;
        P_SW2 |= 0x80;

        if (I2CSLST & 0x40)
        {
                I2CSLST &= ~0x40;                       //´¦ÀíSTARTʼþ
        }
        else if (I2CSLST & 0x20)
        {
                I2CSLST &= ~0x20;                       //´¦ÀíRECVʼþ£¬SLACKOÉèÖÃΪ0
                if (I2CIsr.isda)
                {
                        I2CIsr.isda = 0;                           //´¦ÀíRECVʼþ£¨RECV DEVICE ADDR£©
                }
                else if (I2CIsr.isma)
                {
                        I2CIsr.isma = 0;                           //´¦ÀíRECVʼþ£¨RECV MEMORY ADDR£©
                        I2CIsr.addr = I2CRXD;
                        I2CTXD = I2C_Buffer[I2CIsr.addr];
                }

                else
                {
                        I2C_Buffer[I2CIsr.addr++] = I2CRXD;            //´¦ÀíRECVʼþ£¨RECV DATA£©
                }

        }
        else if (I2CSLST & 0x10)
        {
                I2CSLST &= ~0x10;                       //´¦ÀíSENDʼþ
                if (I2CSLST & 0x02)
                {
                        I2CTXD = 0xff;
                }

                else
                {
                        I2CTXD = I2C_Buffer[++I2CIsr.addr];
                }
        }
        else if (I2CSLST & 0x08)
        {
                I2CSLST &= ~0x08;                       //´¦ÀíSTOPʼþ
                I2CIsr.isda = 1;
                I2CIsr.isma = 1;
                DisplayFlag = 1;
        }

        P_SW2 = store;
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-10-16 13:51:59 | 显示全部楼层
用附件的I2C主从模式例子分别烧录到两个芯片测试,
一个做主机,一个做从机,串口打印通信结果。
用例子调通功能后再进行修改或者移植。

I2C主从收发测试-P14P15.zip

88.62 KB, 下载次数: 43

回复 支持 反对

使用道具 举报 送花

1

主题

1

回帖

15

积分

新手上路

积分
15
发表于 2024-10-16 13:57:17 | 显示全部楼层
https://www.stcaimcu.com/forum.php?mod=attachment&aid=NTk5NDJ8NDM3MTIxZTF8MTc0NjEyMzI4NHwwfA%3D%3D
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:148
  • 最近打卡:2025-04-30 11:21:00

4

主题

129

回帖

241

积分

中级会员

积分
241
发表于 2024-10-16 15:04:13 | 显示全部楼层
解决了么?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-10-16 18:51:36 | 显示全部楼层
这个改成I2CIsr.addr++试试
截图202410161849482844.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:14 , Processed in 0.113460 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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