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.

关于F28335的I2C的问题



初次使用F28335的I2C模块,在阅读Example_2833xI2C_eeprom.c例程中,对ARDYINT中断产生的条件不是很理解,还请各位帮忙解释一下。原文如下:

   // Interrupt source = Register Access Ready

   // This interrupt is used to determine when the EEPROM address setup portion of the

   // read data communication is complete. Since no stop bit is commanded, this flag

   // tells us when the message has been sent instead of the SCD flag. If a NACK is

   // received, clear the NACK bit and command a stop. Otherwise, move on to the read

   // data portion of the communication.

   else if(IntSource == I2C_ARDY_ISRC)

   {

      if(I2caRegs.I2CSTR.bit.NACK == 1)

      {

         I2caRegs.I2CMDR.bit.STP = 1;

         I2caRegs.I2CSTR.all = I2C_CLR_NACK_BIT;

      }

      else if(CurrentMsgPtr->MsgStatus == I2C_MSGSTAT_SEND_NOSTOP_BUSY)

      {

         CurrentMsgPtr->MsgStatus = I2C_MSGSTAT_RESTART;

      }

   }  // end of register access ready

 

非常感谢!