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 EEPROM (AT24C04)、因为我已经从 control-Suit 导入了示例代码。
仅当我写入2或4字节数据并再次从 EEPROM 读回时、示例代码才会正常工作、
但是、当我更改以下内容时;
#define I2C_MAX_buffer_size 6//2
#define I2C_NUMBYTES 8//4
具有 6字节数据的 MsgBuffer [ I2C_NUMBYTES ]
无法执行对 EEPROM 地址寄存器的读取。
供参考:我在观察窗口中观察到未生成寄存器就绪访问中断标志、我没有修改示例代码、除了上面提到的2行和6字节的缓冲区
中国
F28035 I2C 的最大 FIFO 大小仅为4字深。 如果要向 EEPROM 发送额外的数据、然后将其读回、则需要操作 I2CA_Writedata 函数以正确写入大于 FIFO 深度的字数。 一种方法是在将下一个字写入 FIFO 之前添加一个对 TX FIFO 状态的检查、以确保它有空间。 需要对接收端进行类似的更改。
此致、
标记
Mark、您好!
感谢您的回复。
是的、我已经在 I2CA_Writedata 和 ReadData 函数中进行了如下更改:
在 I2CA_WriteData 函数中;
while (I2caRegs.I2CSTR.bit.XRDY = 0){};//在发送前添加
类似地、 I2CA_ReadData 函数是相反的;
while (I2caRegs.I2CSTR.bit.XRDY = 0){};//针对地址设置部分
是否有任何用于连续读取寄存器的示例代码?
除了 control-Suit 提供的 TI 样片之外、是否还有其他样片?