主题中讨论的其他器件:C2000WARE、 TMS320F28379D、
大家好、
使用 i2c_ex1_loopback 示例代码、我看不到如何通过 I2C 接收数据。
在回送模式下、代码按通告运行。 当我将其从环回模式中取出时、我看不到它是如何从 I2C 接收缓冲器中获取数据的。 我不知道数据是否进入缓冲区。
发送命令不是问题。 我已连接到显示器、我发送给它的所有命令都按预期响应、除了应通过 I2C 返回的值。
我正在获取 FIFO 接收中断、因此我以为我从 I2C 总线获取数据、但它提供的所有数据都是0x00。
我知道显示屏工作正常、因为我有一些 Arduino 示例代码可用于显示。
下面是我对 ISR 的接收部分进行的更改、以获取单字节数据:
// // I2C A 发送和接收 FIFO ISR。 // __interrupt void i2cFIFOISR (void) { uint16_t i; // //如果接收 FIFO 中断标志被置位,则读取数据 // if ((I2C_getInterruptStatus (I2CA_BASE)& I2C_INT_RXFF)!= 0) { uint16_t bytes_received; Bytes_received = I2C_getRxFIFOStatus (I2CA_BASE); 对于(i = 0;i < 1;i++) { RDATA[i]= I2C_getData (I2CA_BASE); if (RDATA[i]!= 0) { bytes_received = bytes_received + 1; bytes_received = bytes_received - 1; } DEVICE_DELAY_US (10); } // //清除中断标志 // I2C_clearInterruptStatus (I2CA_BASE、I2C_INT_RXFF); Example_PassCount++; }
我看到的是我要发送的内容的副本。 DLB 位清零、因此我认为 I2CDRR 寄存器不会从内部加载传出数据。 下面是寄存器设置:
我怀疑我没有正确设置寄存器。 让我知道你想看的是什么、我会很高兴地要求你这么做。
您能不能向正确的方向指出我?
谢谢、
Robin









