主题中讨论的其他器件:C2000WARE
我使用 带有 i2c epprom 库的 f28377、 问题是出现在总线上的数据被向左移位。
例如、写入0xF0 (地址)、然后观察 o 示波器 输出的第一个字节为0xE0。
代码:
I2caRegs.I2CSAR.ALL = 0xF0、
设置:
I2caRegs.I2CMDR.bit.FDF = 0;
I2caRegs.I2CMDR.bit.XA = 0;
I2caRegs.I2CMDR.bit.BC = 0x7;
为什么会出现这种情况?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我使用 带有 i2c epprom 库的 f28377、 问题是出现在总线上的数据被向左移位。
例如、写入0xF0 (地址)、然后观察 o 示波器 输出的第一个字节为0xE0。
代码:
I2caRegs.I2CSAR.ALL = 0xF0、
设置:
I2caRegs.I2CMDR.bit.FDF = 0;
I2caRegs.I2CMDR.bit.XA = 0;
I2caRegs.I2CMDR.bit.BC = 0x7;
为什么会出现这种情况?
库文件是 C2000Ware_1_00_01_00中的 i2c_EEPROM。
I2Cinit()
I2caRegs.I2CSAR.ALL = 0x0050;//从地址- EEPROM 控制代码
I2caRegs.I2CPSC.all = 6;//预分频器-模块时需要7-12MHz
I2caRegs.I2CCLKL = 10;//注意:必须为非零
I2caRegs.I2CCLKH = 5;//注意:必须为非零
I2caRegs.I2CIER.ALL = 0x24;//启用 SCD 和 ARDY __interrupts
I2caRegs.I2CMDR.ALL = 0x0020;//使 I2C 退出复位
//挂起时停止 I2C
I2caRegs.I2CFFTX.ALL = 0x6000;//启用 FIFO 模式和 TXFIFO
I2caRegs.I2CFFRX.ALL = 0x2040;//启用 RXFIFO、清除 RXFFINT、
I2caRegs.I2CMDR.bit.FDF = 0;
I2caRegs.I2CMDR.bit.XA = 0;
}
地址写入:
I2caRegs.I2CSAR.ALL = 0xF0; //msg->SlaveAddress;
谢谢 JB