I2Cスレーブ問題の概要

同社はプロジェクトを持っているこの時間の間に、複数のMCUを使用して、I2C通信します。ここで遭遇した多くの問題整頓。

ホストとI2C HALライブラリは比較的簡単です。

ノートへのポイントは、私がやる、私が指示を読ん方法、電源制御チップでスタート - ライト・ストップ・スタート・読む・停止タイミングの始まりということですが、生と死が成功しなかった、私はこのタイミングを考えるありません、それにHALライブラリ割り込み、ポーリングとI2Cの操作を使用して少し便利、そして最もまた、I2Cスレーブデバイスをサポートする必要があります。しかし、このパワーチップがサポートされ、以降のメーカーと連絡した後、[スタート] - 書き込み - 再起動 - 読み取りストップタイミングモード、問題なしに変更されていない、彼らはいくつかのデータを行い、ラインの下の再起動信号の前にイニシアチブを取ると説明しましたそれはラインを解放する前に処理して、停止信号を受信した場合、彼らがデータを読み出し、その結果、操作の終了を指示すると、後固定値(0xFFで)です。

 

奴隷契約はカスタムなので、私が使用して、より柔軟な運用を探しLLライブラリを

いくつかのポイントがあることに注意してください:

1、トランスミッタ、マスター問合せの最後のバイト、機械からの送信、およびホストは、ケースが機械ITERRENレジスタから開いている場合、それは割り込みを入力し、これをACK信号を送信しないからのようなI2C特別な割り込み要求は、特別な処理が必要です。そうでない場合は、しばらく時間のかかる操作であなたの特別な休憩場合、それは通常のI2C通信に影響を与えます。

2分の停止信号が受信されない場合は2、私は恐れてI2Cは、私にはわからない死んでぶら下がってる、私は停止信号リフレッシュ信号に2分のタイマーを作った、私はI2C割り込みは、その後、LEDライトによって表されると思います。私はタイミングがスタート - ライト - 再起動 - 読み取りストップでお読みください。後で発見プログラムは、LEDランプは、I2C(動作中のI2C読み出し動作が行われている)に連結として表現が、ホストにリードデータれている実行されて、I2C通信が正常です。以降、私たちはStm32F1リファレンスマニュアルの理由を発見しました。I2CレジスタSR1に説明STOPFビットについて詳細に説明言います。

原稿が停止読み出し動作がホストによって送信され、最終的にスレーブにスレーブによって認識できないためのみAF(すなわち、NACK信号)を認識し、IがLEDランプI「偽その結果、リフレッシュされていない測定時間に得られました軍事情報。 " その後、私は問題を解決するために、ADDR割り込み要求の信号をリフレッシュします。

 

おすすめ

転載: www.cnblogs.com/dubrother/p/12306952.html