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()の前に
stm32duinoのLEDポート
一番最初はD13でも動作できた記憶があるのだが、以降一度も動かない。ボードにGenericを設定しているためだろうか、そうかもしれんが、これ以外安定して書き込める方法が見つけられなかったし。
ボードにGenericを選んでいると(たぶん)、D13や13が使えずに、オリジナルポート番号を設定する必要がある。
void setup() {
pinMode(PA5,OUTPUT);
}
void loop() {
digitalWrite(PA5,1);
delay(400);
digitalWrite(PA5,0);
delay(100);
}実ポートの接続が PA5である。