DebugLab 发表于 2025-3-12 11:43:49

我没有使用过24C32,9楼网友处理好了可以参考一下:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=181&pid=151183

论坛搜索“24C”,发现有网友提到从24C32开始是双字节寻址,这与24C02不同,需要注意:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=7941&pid=74268
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=7941&pid=74388

具体请查看24C32数据手册,以下是立创商城找到的中文数据手册,不同品牌的24C32都是兼容的:
https://item.szlcsc.com/datasheet/AD24C32/5722225.html?spm=sc.gb.xds.a___sc.gb.hd.ss&lcsc_vid=T1deU1YFRllYXlZeFQBaVlIAEwILUFZRQgJXVQdfFlcxVlNSRlZbV1dUQ1RYUTsOAxUeFF5JWBYZEEoVDQ0NFAdIFA4DSA%3D%3D
https://item.szlcsc.com/datasheet/24C32(LX)/24007534.html?spm=sc.gb.xds.a___sc.gb.hd.ss&lcsc_vid=T1deU1YFRllYXlZeFQBaVlIAEwILUFZRQgJXVQdfFlcxVlNSRlZbV1dUQ1RYUTsOAxUeFF5JWBYZEEoVDQ0NFAdIFA4DSA%3D%3D

以下是硬件I2C参考程序:
宏定义:
#define                MSIF      0x40
#define                EMSI      0x80
#define                MSACKI      0x02

bit I2C_Busy;I2C函数:
void I2C_Start(void)
{
      I2C_Busy=1;
      I2CMSCR=0x81;
      while(I2C_Busy);
}

void I2C_SendData(unsigned char dat)
{
      I2CTXD=dat;
      I2C_Busy=1;
      I2CMSCR=0x82;
      while(I2C_Busy);
}

void I2C_RecvACK(void)
{
      I2C_Busy=1;
      I2CMSCR=0x83;
      while(I2C_Busy);
}

unsigned char I2C_RecvData(void)
{
      I2C_Busy=1;
      I2CMSCR=0x84;
      while(I2C_Busy);
      return I2CRXD;
}

void I2C_SendACK(void)
{
      I2CMSST=0x00;
      I2C_Busy=1;
      I2CMSCR=0x85;
      while(I2C_Busy);
}

void I2C_SendNAK(void)
{
      I2CMSST=0x01;
      I2C_Busy=1;
      I2CMSCR=0x85;
      while(I2C_Busy);
}

void I2C_Stop(void)
{
      I2C_Busy=1;
      I2CMSCR=0x86;
      while(I2C_Busy);
}初始化(注意先打开EAXFR并设置IO模式):
      //I2C设置
      I2CCFG=0xD7;      //400K@40M
      I2CPSCR=0x00;      //400K@40M
      I2CMSCR=EMSI;      //允许主机模式中断,主机命令为待机
      I2CMSST=0x00;      //清除中断标志
      
      //中断设置
      EA=1;中断:
void I2C_Isr(void) interrupt I2C_VECTOR
{
      if(I2CMSST&MSIF)
      {
                I2CMSST&=~MSIF;
                I2C_Busy=0;
      }
}

yizhi123 发表于 2025-4-13 14:07:50

我这样的读出来也全是FF,求助,不知道该咋改了
页: 1 [2]
查看完整版本: I2C求助贴,改的官网范例,读出的都是ff