移植了一个硬件I2C读写24C01的程序,单独跑这一个程序没有问题,已经来回读写几千次了,没出错。
但是一旦加入中断就不行,具体原因就是死在某个while循环里面。我想是由于I2C的一些寄存器突然被打扰,导致一些关联寄存器位改变。
我也试着将仿真中的I2C停止,然后在继续,马上也就死在某个while循环上,应该也是寄存器被打扰而出错。
那么应该如何正确的使用I2C? 我之前曾打算读写I2C的时候关闭中断,可是我又开启了WWDG,WWDG的中断只要打开就是不可关闭的(除非复位),那么这就干扰了I2C。
我翻看了论坛的所有I2C讨论,有人提出过这个中断干扰问题,但都没有人说怎么解决。 有言论者,快出招吧。 |