[[ファームウェア関数一覧>ファームウェア関数一覧#u5cbf254]] *I2C_TransmitPEC [#z504c6dd] #contents **ヘッダ宣言 [#u890346a] **関数プロトタイプ [#d4d5c5de] I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState) **動作 [#m35d6d6d] -I2Cx周辺回路のI2CバスでPEC送信を有効・無効化します。 I2Cx周辺回路のI2CバスでPEC送信を有効・無効化します。 PECはSMBusのNetwork層で提供される機能で、エラー検出を行います。従って、I2C機能をSMBusとして使用するときに有効です。 名前の通りエラー検出だけを行うもので、訂正機能までは入っていません。ベースとなるのはCRC8で、「必要に応じて」付加する事が出来きます。PECのサイズは8bitなので1Byteのデータに1Byteのエラー検出コードが付く形になります。従って転送効率は最悪半分になってしまいます。(1.8KB/sec) PECは、必ずしも8bitあたり1つという訳ではなく、例えば16bitのデータ転送の場合も、付加されるPECは1つ(8bit)のみでてす。元来CRCは適切な長さを選べばエラー検出と訂正が可能になりますが、元データが不定長でCRCが8bit限定であるため、訂正機能は持ちえません。 **引数 [#fa2e90ce] -I2Cx&br; I2C1又はI2C2を指定します。&br; &br; -NewState&br; &br; #include(Macro/NewState,notitle) &br; **出力値 [#y609b178] -無し **戻り値 [#b90d623f] -無し **呼び出し関数 [#n9449afe] -無し **サンプル [#va6b3e16] /* Enable the I2C1 PEC transfer */ I2C_TransmitPEC(I2C1, ENABLE); **参照 [#xff5a579] -