|
TMS320F28027 LAUNCHPAD 在看TI给的I2C的例程时,其I2C模块的初始化设置为从接受模式,这是为什么呢,求大神解答
void I2CA_Init(void)
{
// Initialize I2C
I2caRegs.I2CSAR = 0x0050; // Slave address - EEPROM control code
// I2CCLK = SYSCLK/(I2CPSC+1)
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
I2caRegs.I2CPSC.all = 4; // Prescaler - need 7-12 Mhz on module clk
#endif
#if (CPU_FRQ_60MHZ)
I2caRegs.I2CPSC.all = 6; // Prescaler - need 7-12 Mhz on module clk
#endif
I2caRegs.I2CCLKL = 10; // NOTE: must be non zero
I2caRegs.I2CCLKH = 5; // NOTE: must be non zero
I2caRegs.I2CIER.all = 0x24; // Enable SCD & ARDY interrupts
//SCD:检测到停止条件中断:在I2C总线上检测到停止条件
//ARDY:寄存器访问准备好中断:由于先前编程的地址、
// 数据以及命令值已经被使用,I2C模块寄存器准备好被访问。
I2caRegs.I2CMDR.all = 0x0020; // Take I2C out of reset
// Stop I2C when suspended
//NACKMOD=0,FREE=0中断产生时IIC停止运行,STT=0不产生开始位,
//STP=0不产生停止位,MST=0从模式,TRX=0接收模式,XA=0 七位地址模式,RM=0不重复,DLB=0无回来
//IRS=1使能I2C模块,STB=0模块未处在开始字节模式,FDF=0自由数据格式被禁止
//注意:TRX决定AT24C1024设备地址中的R/W,这里R/W=1读数据
I2caRegs.I2CFFTX.all = 0x6000; // Enable FIFO mode and TXFIFO
I2caRegs.I2CFFRX.all = 0x2040; // Enable RXFIFO, clear RXFFINT,
return;
}
|
|