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.
在F28xxx I2C上花的时间不少,无论是硬件中断方式,还是硬件I2C 查询方式,效果都非常差。还是I/O模拟I2C相对稳定一点。
硬件I2C的主要问题是大多出现在语句 while((i2c->I2CSTR & I2C_I2CSTR_XRDY_BITS) == 0){};
主要原因是什么?各位有无真正可以使用的I2C E2PROM 读写程序?
谢谢!
在基于寄存器直接操作模式下,F2806x外挂 I2C E2Prom , I/O模拟I2C比较简单(无论是在RAM、还是Flash中运行),
当在TI面向对象例程下,比如proj_lab03a 下嵌入I2C e2prom程序时,只能按照指针方式处理,在RAM中运行,I/O模拟 I2C 也比较容易,
当在Flash中运行时,尽管将相关程序移动到RAM运行,发现时序变换相当大!I/O模拟I2C也不太稳定!!
各位有无在proj_labxx 下运行成功的I2C e2prom例子,尤其是程序写入flash中(当然I2C e2prom 可以移动到RAM中运行)例程?
其他CPU,I2C用得不少,TIdsp中还是第一次应用,怎么这么难搞?
谢谢
你好,不知道你程序中有没有其他中断,如果你用while一直在等状态寄存器改变这样会造成资源的浪费,而且当有其他中断产生时会影响到这个while循环,因为后台暂时不执行这个操作了。而你用io模拟,加入有中断进来,io电平会保持住该时刻状态,这样无非是增加了一小段的等待时间,反而使得i2c时序更稳定了。