ファームウェア関数一覧

I2C_StretchClockCmd

ヘッダ宣言

関数プロトタイプ

void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)

動作

I2Cx周辺回路のクロックストレッチ機能を有効・無効化します。

スレーブ側から送信するとき処理時間が間に合わない時、クロックラインをLow に強制的にする事で、マスタ側がクロックを送信するのを待たせる事が出来ます。これをクロックストレッチといいます。

本来は、いつでもクロックストレッチは可能であり、スレーブ側がSCLラインをLowにすればマスタ側からのクロックの送信を抑制することが出来る。さらに、速度の異なるデバイスが同じラインに接続されている場合には、デバイスが特定されるまでは、クロックストレッチにより、もっとも遅いデバイスの速度に全体が抑制される。

デバイスがアドレスにより特定されたあとは、そのデバイスの速度で通信する事が出来る。これは、ラインがワイアードANDになっているため、すべてのデバイスがSCLラインをアイドルにしないとレベルがHighにならないためである。

i2cStretchClock.PNG

引数

  • I2Cx
    I2C1又はI2C2を指定します。

  • NewState


    NewState説明
    ENABLE有効にします
    DISABLE無効にします



出力値

  • 無し

戻り値

  • 無し

呼び出し関数

  • 無し

サンプル

/* Enable the I2C2 clock stretching */
I2C_StretchClockCmd(I2C2, ENABLE);

参照


添付ファイル: filei2cStretchClock.PNG 1655件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-14 (金) 10:48:14