stm32duinoのI2Cポート
これもGenericを選んでいるせいかもしれない。
Arduinoはwire.hで何も書かずに使用されるポートがD15,D14で決まっているようだが、Nucleoではデフォルトポートが違うようだ。
generic stm32のサンプルファイルの中にあるi2c_scanner.inoを開くと、下記のよう記述がある
I2C-1 standard pins: PB7(sda) PB6(scl)
Use it by "Wire" without pin declaration
Wire.begin();
I2C-1 alternative pins: PB9(sda) PB8(scl)
Remap the first I2C before call begin()
Wire.setSDA(PB9);
Wire.setSCL(PB8);
Wire.begin();PB6はD10に割り振られているがPB7は、外部コネクタに出ているため、そこに接続して使用したものの通信信号が出てこなかった。そこで、デフォルトに合わせるため、Wire.begin()の前に
stm32duinoのI2Cポート
これもGenericを選んでいるせいかもしれない。
Arduinoはwire.hで何も書かずに使用されるポートがD15,D14で決まっているようだが、Nucleoではデフォルトポートが違うようだ。
generic stm32のサンプルファイルの中にあるi2c_scanner.inoを開くと、下記のよう記述がある
I2C-1 standard pins: PB7(sda) PB6(scl)
Use it by "Wire" without pin declaration
Wire.begin();
I2C-1 alternative pins: PB9(sda) PB8(scl)
Remap the first I2C before call begin()
Wire.setSDA(PB9);
Wire.setSCL(PB8);
Wire.begin();PB6はD10に割り振られているがPB7は、外部コネクタに出ているため、そこに接続して使用したものの通信信号が出てこなかった。そこで、デフォルトに合わせるため、Wire.begin()の前に
I2Cを制御する
ちょっと、この記事は古いです。。。だいぶ前に書いたものを持ってきたので。。
デジタルノギスの表示部を取り出そうと思い、小さい液晶を探した所、秋月さんにI2Cタイプの小型の物があり、それを使う事にしました。ところで、I2Cでどうやって使うのって所から始めました。う〜ん実は判っていたようでいざ使おうとすると、う〜んよくわからん。設定に有るいくつかの事が実際わからなかった。
I2C仕様書
http://www.nxp.com/documents/user_manual/UM10204_JA.pdf
数年前までは、philips(NXP)にライセンス料を払わないとI2Cを名乗れなかったのですが、ライセンスは切れているようですよ。
I2Cを動かす
秋月の説明書に有る、ここの部分