请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2650 工具/软件:Code Composer Studio
我想通过 I2C 发送一个作为主器件的单字节数据、但它始终 停留在以下行: i2c.h 中的 if (HWREG (I2C0_BASE + I2C_O_mstat)& I2C_mstat_busy)
这是我的代码:
void I2CdataTransfer()
{
PRCMPowerDomainOn (PRCM_DOMAIN_PERIPh);
POWER_setDependency (PowerCC26XX_Periph_I2C0);
//设置电源可靠性和限制
Power_setDependency (PowerCC26XX_Periph_GPIO);
/*设置待机、断电和空闲模式的限制*/
power_setConstraint (PowerCC26XX_SB_disallow);
power_setConstraint (PowerCC26XX_IDLE_PD_Disallow);
PRCMLoadSet();
PRCMPeripheralRunEnable (PRCM_Periph_I2C0);//启用 I2C 模块
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));
}
谢谢!