Part Number: CC2650
Tool/software: Code Composer Studio
I want to send a single byte via I2C with CC2650 as master but it is always stuck at this line : if(HWREG(I2C0_BASE + I2C_O_MSTAT) & I2C_MSTAT_BUSY) from i2c.h.
This is my code :
void I2CdataTransfer()
{
PRCMPowerDomainOn(PRCM_DOMAIN_PERIPH);
Power_setDependency(PowerCC26XX_PERIPH_I2C0);
// Set Power dependecies & constraints
Power_setDependency(PowerCC26XX_PERIPH_GPIO);
/* Set constraints for Standby, powerdown and idle mode */
Power_setConstraint(PowerCC26XX_SB_DISALLOW);
Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW);
PRCMLoadSet();
PRCMPeripheralRunEnable(PRCM_PERIPH_I2C0); // Enable I2C module
PRCMPeripheralRunEnable(PRCM_PERIPH_GPIO);
PRCMLoadSet();
PINCC26XX_setMux(i2cPinHandle, Board_I2C0_SDA0, IOC_PORT_MCU_I2C_MSSDA);
PINCC26XX_setMux(i2cPinHandle, Board_I2C0_SCL0, IOC_PORT_MCU_I2C_MSSCL);
I2CMasterInitExpClk(I2C0_BASE,SysCtrlClockGet(),false);
I2CMasterEnable(I2C0_BASE);
I2CMasterSlaveAddrSet(I2C0_BASE, 0x38, false);
I2CMasterDataPut(I2C0_BASE, 0xAA);
I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_SINGLE_SEND);
while(I2CMasterBusy(I2C0_BASE));
}
Thank you!