i2c EEprom と通信するように stm32 をプログラムしようとしていますが、次のように言うたびに次のようになります。
I2C_GenerateSTART(I2C1, ENABLE);
while( !(I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)) ); the code hangs here
デバッガーを使ってみたところ、SR1 ビット 0 フラグ (開始ビット生成フラグ) が設定されていないことがわかりました。これが原因で、コードがハングします。オシロスコープで、スタート ビットが生成されていることがわかります。これは時々機能します。連続して複数の書き込みを行おうとすると、通常は壊れます。ハードウェアがすべて正常に見えることを確認しました。i2c バスで実行している周波数を確認しました。24lc1025 eeprom 内で 100Khz です。
何か案は、
ありがとう