[[ファームウェア関数一覧>ファームウェア関数一覧#u5cbf254]] *I2C_PECPositionConfig [#kf381d87] #contents **ヘッダ宣言 [#jc7ccda1] **関数プロトタイプ [#t5a25fc7] void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition) **動作 [#gaca16ed] I2Cx周辺回路のPECの位置を選択します。&br; PECはSMBusのNetwork層で提供される機能で、エラー検出を行います。従って、I2C機能をSMBusとして使用するときに有効です。 名前の通りエラー検出だけを行うもので、訂正機能までは入っていません。ベースとなるのはCRC8で、「必要に応じて」付加する事が出来きます。PECのサイズは8bitなので1Byteのデータに1Byteのエラー検出コードが付く形にります。従って転送効率は最悪半分になってしまいます。(1.8KB/sec) PECは、必ずしも8bitあたり1つという訳ではなく、例えば16bitのデータ転送の場合も、付加されるPECは1つ(8bit)のみでてす。元来CRCは適切な長さを選べばエラー検出と訂正が可能になりますが、元データが不定長でCRCが8bit限定であるため、訂正機能は持ちえません。 **引数 [#a93488fc] -I2Cx&br; I2C1又はI2C2を指定します。&br; &br; -I2C_PECPosition&br; PECの位置を以下のマクロから選択します。&br; &br; #include(Macro/I2C_PECPosition,notitle) &br; **出力値 [#m44c1d92] -無し **戻り値 [#h4148181] -無し **呼び出し関数 [#we3d05d7] -無し **サンプル [#h47b329a] /* Configure the PEC bit to indicvates that the next byte in shift register is PEC for I2C2 */ I2C_PECPositionConfig(I2C2, I2C_PECPosition_Next); **参照 [#e6c75a64] -