This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2C WITH LM4F120H5QR



以下是初始化代码:

ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |           //80mhz
                       SYSCTL_OSC_MAIN);
  SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
  GPIOPinConfigure(GPIO_PB2_I2C0SCL);
  GPIOPinConfigure(GPIO_PB3_I2C0SDA);
  GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);
  GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2 );
  I2CMasterInitExpClk(I2C0_MASTER_BASE, SysCtlClockGet(), true);        //400kbps
  ROM_SysCtlDelay(10000);
  I2CMasterEnable(I2C0_MASTER_BASE);

以下是读取传感器(MPU6050)的两个寄存器0X3B,0X39,连续读取.Burst read,

unsigned long back1,back2,m;

 I2CMasterSlaveAddrSet(I2C0_MASTER_BASE,SlaveAddress,false);
  I2CMasterDataPut(I2C0_MASTER_BASE,0x38);
  I2CMasterControl(I2C0_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_START);
  while(I2CMasterBusy(I2C0_MASTER_BASE));
  I2CMasterSlaveAddrSet(I2C0_MASTER_BASE,SlaveAddress,true);
  I2CMasterControl(I2C0_MASTER_BASE,I2C_MASTER_CMD_BURST_RECEIVE_START);
  while(I2CMasterBusy(I2C0_MASTER_BASE));
  back1=I2CMasterDataGet(I2C0_MASTER_BASE);
  I2CMasterControl(I2C0_MASTER_BASE,I2C_MASTER_CMD_BURST_RECEIVE_FINISH);
  while(I2CMasterBusy(I2C0_MASTER_BASE));
  back2=I2CMasterDataGet(I2C0_MASTER_BASE);
  m=(back2<<8)|back1;
  return(m);

back1可以正确的读出,为什么BACK2读不出来呢?是unavailable.