用28335的IIC外接AT24C512对其进行读取

2019-07-15 19:19发布

SDA口为GpioDataRegs.GPBDAT.bit.GPIO32,但是搞不懂为什么进来的数据全是1,应该是0和1组成的二进制码,是我哪里没有设置对还是?
unsigned char I2C_DATA_IN(void)
{
  unsigned char i,c,d;

  switch_sda_in();
  c=0;
  DSP28x_usDelay(10000);
  for(i=0;i<8;i++)
  {
          d=GpioDataRegs.GPBDAT.bit.GPIO32;   //SDA
          d=d|0x01;    // 输入1位
          c=c|d;
          c=c<<1;
  }

//  c=GpioDataRegs.GPBDAT.bit.GPIO32;   //SDA     28335为32位   //c为8位数据
  c=c&0x08;
  if(c==0x08)            //一直在发送的时候c==0x08;发送完c==0;
    {
    c=0x1;
    }
   else
    {
    c=0;
    }
  return(c);

}
这是部分程序

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。