主题中讨论的其他器件:C2000WARE、 LM96080
您好!
我们按照该示例从 C2000目录读取、并使用 EEPROM 以重复开始进行读取。
如果我们读取1个字节是正确的、如果我们尝试读取多个字节(使用启用的 FIFO)、则会使第一个 By 正确、但剩余的字节为0xFF。
是否存在配置问题?
I2C_DisableModule (i2cBase);
I2C_initMaster (i2cBase、DEVICE_SYSCLK_FREQ、kHz_100、I2C_DUTYCYCLE _50);
I2C_setAddressMode (i2cBase、I2C_ADDR_MODE_7BITS);
I2C_setBitCount (i2cBase、I2C_BITCOUNT_8);
I2C_setSlaveAddress (i2cBase、slaveAddr);
// I2C_emulation_free_run -无论挂起(即断点)如何、I2C 操作都将继续
I2C_setEmulationMode (i2cBase、I2C_emulation_free_run);
//启用停止条件和寄存器访问就绪中断
I2C_enableInterrupt (i2cBase、I2C_INT_STOP_Condition | I2C_INT_REG_ACCESS_RDY);
// FIFO 配置
I2C_enableFIFO (i2cBase); // FIFO 可在没有中断的情况下使用
I2C_clearInterruptStatus (i2cBase、I2C_INT_RXFF | I2C_INT_TXFF); //不使用中断时不会损坏
//配置完成。 启用模块(即使其退出复位)
I2C_enableModule (i2cBase);
//参考手册:11.3.4... 通过设置使 I2C 外设从复位状态中退出后
// IRS 位为1,等待一个大于最长数据传输所需的总时间的时间段。
DEVICE_DELAY_US (10000); // 1msec 应该足够了