0

我的 PIC16F88 有一个奇怪的问题。我有一个通过 I2C 连接的 EEPROM,它可以完美地工作,直到我写入 portb.bit6。从那时起,我开始从我的 EEPROM 中获取垃圾。我尝试明确禁用 Timer 1,它使用 portb.6 进行振荡器输出,但这没有帮助。我尝试从 PIC 引脚(引脚 12)上剪下走线,这样就没有任何物理连接,这没有帮助。我的 C 代码很简单,portb.6 = 0 或 portb.6 = 1。无论哪种方式,通过 I2C 读取 EEPROM 都将永远失败。生成的 ASM 代码看起来不错。这个问题出现在我尝试过的每块板上,所以它没有本地化到一个 PCB。我很迷惑。有什么建议么?

4

1 回答 1

0

事实证明,在写入 portb 中的任何位之前,每次都需要向 SCL 和 SDA 引脚写入零位。FWIW,我是在使用 PIC16F88 的 SSP 外设来进行 I2C 通信,而不是使用它。感谢 Yahoo 小组 Electronics_101 的人员解决了这个难题。

于 2012-08-21T16:42:40.717 回答