我在进行写操作时:
我应用的是dsp28035,I2C写操作配置如下:
I2caRegs.I2CCNT = 3;
I2caRegs.I2CDXR = (UINT16)(u16Address & 0x00ff);
I2caRegs.I2CDXR =data[0];
I2caRegs.I2CDXR = data[1];
//I2caRegs.I2CDXR = data[2];
//I2caRegs.I2CDXR = data[3];
I2caRegs.I2CMDR.all = 0x6E20;
运行完这步时,通过cccs的window查看变量,结果I2caRegs.I2CMDR.all=0x4220,这点为明白STT和
STP置1后,这两位会自动清零。
但是我修改程序如下:
I2caRegs.I2CCNT = 5;
I2caRegs.I2CDXR = (UINT16)(u16Address & 0x00ff);
I2caRegs.I2CDXR =data[0];
I2caRegs.I2CDXR = data[1];
I2caRegs.I2CDXR = data[2];
I2caRegs.I2CDXR = data[3];
I2caRegs.I2CMDR.all = 0x6E20;
运行完这步时,通过cccs的window查看变量,结果I2caRegs.I2CMDR.all=0x6E20,STT和STP置1后,这两位为何不能自动清零呢。