查看: 5624|回復: 1
打印 上一主題 下一主題

有人研究過(guò)ST官方I2C中斷代碼嗎

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2009-6-12 12:35:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 代碼 , 官方 , 研究
連續發(fā)送兩個(gè)字節數據:
  Tx1_Idx = 0;
  I2cNumbOfBytes2Tansmit = 2;
  I2C1_Buffer_Tx[0] = 0x64;
  I2C1_Buffer_Tx[1] = 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[Tx1_Idx++]);
      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[Tx1_Idx++]);
      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;
  }
}

現在發(fā)現進(jìn)不了EV8-2中斷,如果改成發(fā)送一個(gè)字節數據可以進(jìn)入該中斷。
仔細研究了datasheet,找不出任何問(wèn)題。
PS:外掛的器件是rx8025實(shí)時(shí)時(shí)鐘芯片。
香水城到不到這里的?21icbbs這幾天一直上不去,非常之郁悶!
沙發(fā)
發(fā)表于 2009-6-12 21:31:37 | 只看該作者
有時(shí)候官方的東西也不能信
害人的東西存在于各個(gè)世界角落
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页