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.

MSP430FR2433硬件IIC从机400K问题

Other Parts Discussed in Thread: MSP430FR2433

MSP430FR2433的硬件IIC怎么设置为从机400K呢?我现在这边主机是IIC的400K速率,读取数据时2433反应不过来https://e2echina.ti.com/形如图

  • 你好。附件里是代码吗?下载不了。

    msp430里有作为iic从机的的例程,不过不是400k,楼主参考下吧

    //******************************************************************************
    //  MSP430FR243x Demo - eUSCI_B0 I2C Slave TX multiple bytes to MSP430 Master
    //
    //  Description: This demo connects two MSP430's via the I2C bus. The master
    //  reads from the slave. This is the SLAVE code. The TX data begins at 0
    //  and is incremented each time it is sent. A stop condition
    //  is used as a trigger to initialize the outgoing data.
    //  The USCI_B0 TX interrupt is used to know
    //  when to TX.
    //  ACLK = default REFO ~32768Hz, MCLK = SMCLK = default DCODIV ~1MHz.
    //
    //    *****used with "msp430fr243x_euscib0_i2c_10.c"****
    //
    //                                /|\  /|\
    //               MSP430FR2433      10k  10k     MSP430FR2433
    //                   slave         |    |        master
    //             -----------------   |    |   -----------------
    //            |     P1.2/UCB0SDA|<-|----|->|P1.2/UCB0SDA     |
    //            |                 |  |       |                 | 
    //            |                 |  |       |                 |
    //            |     P1.3/UCB0SCL|<-|------>|P1.3/UCB0SCL     |
    //            |                 |          |                 |
    //
    //   Cen Fang
    //   Texas Instruments Inc.
    //   June 2013
    //   Built with IAR Embedded Workbench v6.20 & Code Composer Studio v6.0.1
    //******************************************************************************
    #include <msp430.h>
    
    volatile unsigned char TXData;
    
    int main(void)
    {
      WDTCTL = WDTPW | WDTHOLD;
    
      // Configure GPIO
      P1SEL0 |= BIT2 | BIT3;                    // I2C pins
    
      // Disable the GPIO power-on default high-impedance mode to activate
      // previously configured port settings
      PM5CTL0 &= ~LOCKLPM5;
    
      // Configure USCI_B0 for I2C mode
      UCB0CTLW0 = UCSWRST;                      // Software reset enabled
      UCB0CTLW0 |= UCMODE_3 | UCSYNC;           // I2C mode, sync mode
      UCB0I2COA0 = 0x48 | UCOAEN;               // own address is 0x48 + enable
      UCB0CTLW0 &= ~UCSWRST;                    // clear reset register
      UCB0IE |= UCTXIE0 | UCSTPIE;              // transmit,stop interrupt enable
    
        __bis_SR_register(LPM0_bits | GIE);     // Enter LPM0 w/ interrupts
        __no_operation();
    }
    
    #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
    #pragma vector = USCI_B0_VECTOR
    __interrupt void USCIB0_ISR(void)
    #elif defined(__GNUC__)
    void __attribute__ ((interrupt(USCI_B0_VECTOR))) USCIB0_ISR (void)
    #else
    #error Compiler not supported!
    #endif
    {
      switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG))
      {
        case USCI_NONE: break;                  // Vector 0: No interrupts
        case USCI_I2C_UCALIFG: break;           // Vector 2: ALIFG
        case USCI_I2C_UCNACKIFG: break;         // Vector 4: NACKIFG
        case USCI_I2C_UCSTTIFG: break;          // Vector 6: STTIFG
        case USCI_I2C_UCSTPIFG:                 // Vector 8: STPIFG
          TXData = 0;
          UCB0IFG &= ~UCSTPIFG;                 // Clear stop condition int flag
          break;
        case USCI_I2C_UCRXIFG3: break;          // Vector 10: RXIFG3
        case USCI_I2C_UCTXIFG3: break;          // Vector 14: TXIFG3
        case USCI_I2C_UCRXIFG2: break;          // Vector 16: RXIFG2
        case USCI_I2C_UCTXIFG2: break;          // Vector 18: TXIFG2
        case USCI_I2C_UCRXIFG1: break;          // Vector 20: RXIFG1
        case USCI_I2C_UCTXIFG1: break;          // Vector 22: TXIFG1
        case USCI_I2C_UCRXIFG0: break;          // Vector 24: RXIFG0
        case USCI_I2C_UCTXIFG0:
           UCB0TXBUF = TXData++;
           break;                               // Vector 26: TXIFG0
        case USCI_I2C_UCBCNTIFG: break;         // Vector 28: BCNTIFG
        case USCI_I2C_UCCLTOIFG: break;         // Vector 30: clock low timeout
        case USCI_I2C_UCBIT9IFG: break;         // Vector 32: 9th bit
        default: break;
      }
    }
    

  • 很抱歉,现在看不到您的附件内容。您的主机是什么呢?