我的代码在下面,请教各位大侠,有两个问题
1、CDCE193在I2C配置haishi中当从机,请问从机地址应该写0xC8,还是写0x65
2、我配置I2C的顺序不知道有没有问题,还请大神指教
int main(void)
{
ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C4); // 使能I2C4
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOR); // 使能R口
GPIOPinConfigure(GPIO_PR6_I2C4SCL); // 初始化GPIO口作为I2C
GPIOPinConfigure(GPIO_PR7_I2C4SDA);
GPIOPinTypeI2CSCL(GPIO_PORTR_BASE, GPIO_PIN_6);
GPIOPinTypeI2C(GPIO_PORTR_BASE,GPIO_PIN_7);
I2CMasterInitExpClk(I2C4_BASE, ui32SysClock, false); // 100K传输
I2CMasterEnable(I2C4_BASE);
I2CMasterSlaveAddrSet(I2C4_BASE, CDCE913_ADDRESS_Write, false); // 913为从机
// 以下是写寄存器过程
for(ui32Index = 0; ui32Index < NUM_I2C_DATA; ui32Index++)
{
I2CMasterControl( I2C4_BASE, I2C_MASTER_CMD_BURST_SEND_START ); //start
I2CMasterControl(I2C4_BASE,I2C_MASTER_CMD_SINGLE_SEND); // 单字节传送配置
while( I2CMasterErr(I2C6_BASE) | I2CMasterBusy(I2C6_BASE) );
I2CMasterDataPut(I2C4_BASE, CDCE913inx_data[ui32Index*2]); // 寄存器地址
while( I2CMasterErr(I2C6_BASE) | I2CMasterBusy(I2C6_BASE) );
I2CMasterDataPut(I2C4_BASE, CDCE913inx_data[ui32Index*2+1]); // 寄存器写入值
while( I2CMasterErr(I2C6_BASE) | I2CMasterBusy(I2C6_BASE) );
//I2CMasterControl( I2C6_BASE, I2C_MASTER_CMD_BURST_SEND_FINISH ); //stop
// while(I2CMasterBusy(I2C4_BASE)); // 等待传完
}
return(0);
}