« クルマを売り続ける理由 | トップページ | LDO »

2019年5月20日 (月)

STM32のI2C...

ああ。

STM32はF4までと、F3以降(L4とか)でI2Cの構成が
大幅に変わってるから...ね。

新しいやつは、相手先アドレスがレジスタ中の独立した
ビットフィールドに割り当てられているけど、
古いやつは、アドレス用のレジスタなんて存在してなくて、
自分で、アドレス+R/Wフラグで組み立てないといけない。
1ビット左シフトしているように見えるのは、ここが原因かな。

実際、F3系を使っていると、もうF4までのI2Cは触りたくない。
そりゃまあ、ライブラリがその辺隠ぺいしてくれれば
なんにも問題はないはずなんだけど...

マイコンあるあるだけど、ハードウエア構成に
強く依存する様なもの(これとか、タイマーとか)
は、ライブラリが(微妙に)うまく機能しないことなんて
日常茶飯事だ。

そりゃまあ、ライブラリがクソ、と言って済むなら
それで万事オッケーだけど、どうにか動かさないといけなく
なることも普通。

公式ライブラリ、確かに有効なんだけど、早いんだけど、
この手のトラップで引っかかると、脱出に無限の時間がかかる
(手詰まりになる)

時間がかかっても、必達の案件はレジスタ直たたき
から離れられない...
早さよりも、行き詰らない方が遥かに重要だ。

|

« クルマを売り続ける理由 | トップページ | LDO »

コメント

コメントを書く



(ウェブ上には掲載しません)




« クルマを売り続ける理由 | トップページ | LDO »