0

「バイトパラダイム」I2CエクスプレスデバイスにI2CCライブラリを使用したい。これは、バイトパラダイムのWebサイトにあるサンプルAPIでした。

//
// Executing I2C write transfer    
//
pDataWr[0] = 0x12;
pDataWr[1] = 0x34;
printf("\nWriting 0x%02X to address 0x%02x...\n", pDataWr[1], pDataWr[0]);
i2c_CmdBufAppend(2, 0x50, 1, 2, (char *)pDataWr, true, true); // Cmd = 2       : I2C write
                                                             // Address = 0x50
                                                             // AddrType = 1  : 7-bit address
                                                             // Length = 2    : 2 byte payload
                                                             // pDataWr       : buffer with 2 bytes payload (0x1234)
                                                             // STA = true    : generate start
                                                             // STO = true    : generate stop

i2c_RunMaster();
i2c_CmdBufDeleteAll();

これは何を意味するのでしょうか?その執筆はどこで何ですか?以下に示すAPIとどのように異なりますか?

//
// Executing dummy write to set EEPROM address
//
printf("\nExecuting dummy write to set EEPROM address...\n");
pDataWr[0] = 0x12;
i2c_CmdBufAppend(2, 0x50, 1, 1, (char *)pDataWr, true, true); // Cmd = 2       : I2C write
                                                             // Address = 0x50
                                                             // AddrType = 1  : 7-bit address
                                                             // Length = 1    : 1 byte payload
                                                             // pDataWr       : buffer with 1 byte payload (0x12)
                                                             // STA = true    : generate start
                                                             // STO = true    : generate stop
i2c_RunMaster();
i2c_CmdBufDeleteAll();

バイトパラディグムライブラリのドキュメントを確認しましたが、情報は非常に限られています。親切に助けてください、事前に感謝します:)

4

2 に答える 2

2

I2C 仕様を Google ですばやく検索すると、http: //i2c2p.twibright.com/spec/i2c.pdfという結果になりました。

i2c デバイスで遊ぶのは久しぶりです (専用のチップセット用に独自のドライバーを作成する必要がありました)。

コードを実行しているチップが I2C マスターです。

i2c_CmdBufAppend(2, 0x50, 1, 2, (char *)pDataWr, true, true); // Cmd = 2       : I2C write
                                                         // Address = 0x50
                                                         // AddrType = 1  : 7-bit address
                                                         // Length = 2    : 2 byte payload
                                                         // pDataWr       : buffer with 2 bytes payload (0x1234)
                                                         // STA = true    : generate start
                                                         // STO = true    : generate stop

あなたが使用しているライブラリについては何も知りませんが、コメントは、デバイスをアドレス 0x50 (7 ビット アドレス指定を使用) でアドレス指定し、2 バイトのデータを書き込んでおり、開始条件と停止条件も生成していることを完全に説明しています。

対話している I2C 仕様と EEPROM を参照する必要があります。

仕様を理解すれば、それほど難しいことではありません。ちなみに、I2Cデバイスへのデータの読み取り/書き込みの例がたくさんあります。

一部のデバイスは、特別な値 (レジスタやコマンド値など) を書き込み、データを読み戻す必要があるように設定されています。これは、書き込みコマンドを送信してから、コマンド間の STOP なしで読み取りコマンドを送信することによってセットアップされます。

対話しているデバイスには、特別なコマンドなどの詳細が必要です。ライブラリ I2C ライブラリには、これらの詳細はありません。

于 2011-11-14T19:34:31.400 に答える