前提
GitHubで、sim230ドライバで、i2c_transferという関数が使われています。
しかし、実態がないのでどうしたものか迷っていて、ネットでググったところ、i2c_transferは組み込み関数と質変えるようなことが書いてあったのですが、この関数は、値をセットしてやればI2C通信を自動でしてくれると認識してよろしいのでしょうか。
それとも、やはり、個別で関数を作ってやって、SCLとSDLのビットスタートで、データのやり取りを指定してやる必要性があるのでしょうか。
あまり、I2Cに詳しくないので、質問の仕方が悪いかもしれませんが、わかる方がいらっしゃいましたら、どうか、お答え願えると幸いです。
よろしくお願いいたします。
i2c_transferについてかかれている、HPはいかになります。
https://cpp.hotexamples.com/jp/examples/-/-/I2C_Transfer/cpp-i2c_transfer-function-examples.html
https://www.nds-osk.co.jp/download-files/forum/freedownload/06/casestudy1/UserlandIO.pdf
■■な機能を実装中に以下のエラーメッセージが発生しました。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
for (retry = 0; retry < SMI230_MAX_RETRY_I2C_XFER; retry++) {
if (i2c_transfer(smi230_i2c_adapter, msg, ARRAY_SIZE(msg)) > 0)
break;
usleep_range(SMI230_I2C_WRITE_DELAY_TIME * 1000,
SMI230_I2C_WRITE_DELAY_TIME * 1000);
}
GitHubのソース的には、次になります。
ここのなかの、i2c_transferになります。
よろしくお願いいたします。
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
よろしくお願いいたします。
hiro329
hiro329
2022/08/10 16:41