I2C

I2Cで接続されたセンサを使ってみます。

最近は、まず参考になりそうな先人を探すところからスタートです。 今回はこの方の簡潔な説明を見て、考えながら試行錯誤しました。 単にセンサにアクセスするだけなら、これで十分な気がします。

meerstern.seesaa.net

最初、このMemAddSizeに何を指定するのかを誤解していて、 センサから5バイト読むから5とか指定すると動作しませんでした。 上記サイトにも書いてありますが、8ビット単位で読むなら I2C_MEMADD_SIZE_8BITを指定するのですね。

今回のセンサのwho am iレジスタを読んでみるコードはこんなの。 実質HAL_I2C_Mem_Readの1行だけですが、これが動けば一安心です。

f:id:yamamoto-works:20190512204745p:plain

あとは同じパターンでソースコードをごりごり書けばできあがりです。