主题中讨论的其他器件:C2000WARE
您好、TI 团队、
我正在使用 I2C 驱动程序、我设法使 i2c fifo 工作、fifo Tx、fifo Rx 中断工作。 我正在正确获取中断。
我的问题是、当我尝试读取 EEPROM 时、我将访问一些随机地址值、而不是我想要的正确存储器位置
目前,我正在执行以下读取操作步骤(步骤1中禁用了*模块)
- 我正在设置从地址(0x50)、然后我将 TRX 设为1以发送地址值、并且 MST = 1并在我的发送函数中将寄存器地址加载到我的全局数组中
- 然后我将启用模块(IRS = 1)、我将在启用模块之前加载数据、因为我的 TXFIFO 电平设置为0。
- 现在、Tx 中断命中次数和数据(我要访问的存储器地址)被加载到 I2CDXR 寄存器(FIFO 缓冲区)中
- 然后通过设置 STT 来推入1启动条件
- 我将 TRX 位设置为0进行读取、MST = 1、然后在 寄存器中设置从地址(0x50)
- 我正在获取 Rx 中断、但 I2CDRR 寄存器中的数据不是我使用写函数写入的数据。
我的写入函数正在工作、因为我可以看到我加载的值、我只能在我执行多次读取(因此我知道数据写入 EEPROM)时看到这些值(这是新的 EEPROM、因此所有数据位必须为1)
我怀疑 写操作可能也无法访问我正在传递或希望写入的正确地址。
那么,请告诉我如何访问正确的位置,我缺少什么?
我要做的是从特定位置进行写入和读取。
我的代码非常通用、因为它适用于传感器、EEPROM 和其他支持 i2c 的器件。