有人研究过ST官方I2C中断代码吗

2009年06月12日 12:35    发布者:hsia
连续发送两个字节数据:
  Tx1_Idx = 0;
  I2cNumbOfBytes2Tansmit = 2;
  I2C1_Buffer_Tx = 0x64;
  I2C1_Buffer_Tx = 0x00;
  Direction = Transmitter;
  I2C_GenerateSTART(I2C1, ENABLE);

我的中断代码:
void I2C1_EV_IRQHandler(void)
{
  switch (I2C_GetLastEvent(I2C1))
  {
    case I2C_EVENT_MASTER_MODE_SELECT:                 /* EV5 */
      /* Master Transmitter ----------------------------------------------*/
      /* Send slave Address for write */
      if(Direction == Transmitter)
      {
        /* Master Transmitter ----------------------------------------------*/
        /* Send slave Address for write */
        I2C_Send7bitAddress(I2C1, 0x64, I2C_Direction_Transmitter);
      }
      else
      {
        /* Master Receiver -------------------------------------------------*/
        /* Send slave Address for read */
        I2C_Send7bitAddress(I2C1, 0x65, I2C_Direction_Receiver);      
      }
      break;
        
    /* Master Transmitter --------------------------------------------------*/
    /* Test on I2C1 EV6 and first EV8 and clear them */
    case I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED:  
      
      /* Send the first data */
      I2C_SendData(I2C1, I2C1_Buffer_Tx);
      I2cNumbOfBytes2Tansmit--;
      if (I2cNumbOfBytes2Tansmit == 0)
      {
        /* In order to not have a TxE event Interrupt */
        I2C_ITConfig(I2C1, I2C_IT_BUF, DISABLE);
      }
      break;

    /* Test on I2C1 EV8 and clear it */
    case I2C_EVENT_MASTER_BYTE_TRANSMITTING:  /* Without BTF, EV8 */     
      I2C_SendData(I2C1, I2C1_Buffer_Tx);
      I2cNumbOfBytes2Tansmit--;
      if (I2cNumbOfBytes2Tansmit == 0)
      {
        I2C_ITConfig(I2C1, I2C_IT_BUF, DISABLE);
      }         
      break;

    case I2C_EVENT_MASTER_BYTE_TRANSMITTED: /* With BTF EV8-2 */
      I2C_ITConfig(I2C1, I2C_IT_BUF, ENABLE);
      I2C_GenerateSTOP(I2C1, ENABLE);
      Direction = Receiver;
      break;
    default:
      break;
  }
}

现在发现进不了EV8-2中断,如果改成发送一个字节数据可以进入该中断。
仔细研究了datasheet,找不出任何问题。
PS:外挂的器件是rx8025实时时钟芯片。
香水城到不到这里的?21icbbs这几天一直上不去,非常之郁闷!

网友评论

一朝成名 2009年06月12日
有时候官方的东西也不能信
害人的东西存在于各个世界角落