TI中文支持网
TI专业的中文技术问题咨询交流网站

MSP430F5438A USCI_B I2C Slave模式 无响应

采用官方代码

unsigned char TXData;
unsigned char i=0;

int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                   // Stop WDT

  P3SEL |= 0x06;                                                  // Assign I2C pins to USCI_B0
  UCB0CTL1 |= UCSWRST;                                 // Enable SW reset
  UCB0CTL0 = UCMODE_3 + UCSYNC;             // I2C Slave, synchronous mode
  UCB0I2COA = 0x48;                                           // Own Address is 048h
  UCB0CTL1 &= ~UCSWRST;                              // Clear SW reset, resume operation
  UCB0IE |= UCTXIE + UCSTTIE + UCSTPIE;     // Enable TX interrupt
                                                                              // Enable Start condition interrupt
  TXData = 0;                                                         // Used to hold TX data

  __bis_SR_register(LPM0_bits + GIE);                // Enter LPM0 w/ interrupts
  __no_operation();                                                // For debugger
}

// USCI_B0 State ISR
#pragma vector = USCI_B0_VECTOR
__interrupt void USCI_B0_ISR(void)
{
  switch(__even_in_range(UCB0IV,12))
  {
  case  0: break;                           // Vector  0: No interrupts
  case  2: break;                           // Vector  2: ALIFG
  case  4: break;                           // Vector  4: NACKIFG
  case  6:                                     // Vector  6: STTIFG
     UCB0IFG &= ~UCSTTIFG;   // Clear start condition int flag
     break;
  case  8:                                     // Vector  8: STPIFG
    TXData++;                               // Increment TXData
    UCB0IFG &= ~UCSTPIFG;    // Clear stop condition int flag
    break;
  case 10: break;                         // Vector 10: RXIFG  
  case 12:                                   // Vector 12: TXIFG
    UCB0TXBUF = TXData;        // TX data
    break;
  default: break;  }
}

I2C 主机用另一块开发板 IO口模拟时序(软件I2C)  ,上拉电阻2K,电阻10K都试了,一样没反应,不进中断.

连基本的起始和停止条件都不响应. 示波器测量SDA,SCL原始脉冲,一切正常.

Susan Yang:

请问您在使用示波器观察信号波形时,发送的从机地址和自己设置的地址是否相同?主机是什么芯片呢?

user6352220:

回复 Susan Yang:

主机用的STM32L053的芯片IO口模拟I2C,就只发送了起始条件和停止条件,其它没发。但MSP430 不响应中断,也捕获不了起始和停止条件

user6352220:

回复 Susan Yang:

补充:按理说如果发送起始和停止条件,中断里面应该能捕获取 STTIFG和STPIFG.但一点反应也没有

Susan Yang:

回复 user6352220:

谢谢您的反馈!

参考用户指南 Table 38-10. UCBxI2COA Register Description,请您对照一下地址是否正确

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A USCI_B I2C Slave模式 无响应
分享到: 更多 (0)