MASTER CODE: // Configure USCI_B0 for I2C mode UCB0CTLW0 |= UCSWRST; // put eUSCI_B in reset state UCB0CTLW0 |= UCMODE_3 | UCMST; // I2C master mode, SMCLK UCB0BRW = 0x8; // baudrate = SMCLK / 8 UCB0CTLW0 &=~ UCSWRST; // clear reset register unsigned char TXData[]= {0xA0,0xB0,0xC0,0xD1}; // Pointer to TX data Int cnt=0; while(1) { __delay_cycles(1000); // Delay between transmissions UCB0I2CSA = 0x0A; // configure slave address while (UCB0CTLW0 & UCTXSTP); // Ensure stop condition got sent UCB0CTLW0 |= UCTR | UCTXSTT; // I2C TX, start condition UCB0TXBUF = TXData[cnt]; // Load TX buffer cnt++; if (cnt>3) { break; } } SLAVE CODE: // Configure USCI_B0 for I2C mode UCB0CTLW0 |= UCSWRST; //Software reset enabled UCB0CTLW0 |= UCMODE_3; //I2C slave mode, SMCLK UCB0I2COA0 = 0x0A | UCOAEN;//SLAVE0 own address is 0x0A| enable UCB0CTLW0 &=~UCSWRST; //clear reset register while(1) { if(UCB0IFG & 0x01) // check for incoming data { RXData0 = UCB0RXBUF; // Get RX data if(RXData0 == 0xD1) { break ;} } }