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.

28035的i2c只有四级深度的FIFO,page write方式写EEPROM时,按官方例程,把所有数据放FIFO然后发送的方式行不通啊

请教个问题,新手刚学page write方式写EEPROM时,按官方例程,把所有数据放FIFO然后发送的方式行不通啊,FIFO只有四级深度,数据比较长时会把前面的覆盖掉。

   I2caRegs.I2CCNT = msg->NumOfBytes+2;
   // Setup data to send
   I2caRegs.I2CDXR = msg->MemoryHighAddr;
   I2caRegs.I2CDXR = msg->MemoryLowAddr;
// for (i=0; i<msg->NumOfBytes-2; i++)
   for (i=0; i<msg->NumOfBytes; i++)
   {
      I2caRegs.I2CDXR = *(msg->MsgBuffer+i);
   }
这个例程里面I2caRegs.I2CDXR = *(msg->MsgBuffer+i); 这句话实现不了吧
  • 开启了增强FIFO模式,往BUFFER里写,会通过指针自动填充到FIFO队列把,然后有个判断FIFO队列数据个数的中断,FIFO队列数据少了进中断填充再发,你难道想一次把所有数据都写上吗。。

  • TI的例程,使能了FIFO,但是却是用的I2CINT1A中断。如果XRDY_INT中断也使能,在中断中向发送BUFF填 入数据,FIFO就失效了,每发送一个8 bitXRDY_INT就会触发一次,这种情况下FIFO只有一级深度了,总之就是矛盾的。不知道I2CINT1A和I2CINT2A不知道能不能同时使能。我正在试