I2C_StretchClockCmd †ヘッダ宣言 †関数プロトタイプ †void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState) 動作 †I2Cx周辺回路のクロックストレッチ機能を有効・無効化します。 スレーブ側から送信するとき処理時間が間に合わない時、クロックラインをLow に強制的にする事で、マスタ側がクロックを送信するのを待たせる事が出来ます。これをクロックストレッチといいます。 本来は、いつでもクロックストレッチは可能であり、スレーブ側がSCLラインをLowにすればマスタ側からのクロックの送信を抑制することが出来る。さらに、速度の異なるデバイスが同じラインに接続されている場合には、デバイスが特定されるまでは、クロックストレッチにより、もっとも遅いデバイスの速度に全体が抑制される。 デバイスがアドレスにより特定されたあとは、そのデバイスの速度で通信する事が出来る。これは、ラインがワイアードANDになっているため、すべてのデバイスがSCLラインをアイドルにしないとレベルがHighにならないためである。 引数 †
出力値 †
戻り値 †
呼び出し関数 †
サンプル †/* Enable the I2C2 clock stretching */ I2C_StretchClockCmd(I2C2, ENABLE); 参照 † |