stm32duino

stm32duinoのI2Cポート

ee9king に投稿

これも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ポート

ee9king に投稿

これも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ポート

ee9king に投稿

一番最初はD13でも動作できた記憶があるのだが、以降一度も動かない。ボードにGenericを設定しているためだろうか、そうかもしれんが、これ以外安定して書き込める方法が見つけられなかったし。

ボードにGenericを選んでいると(たぶん)、D13や13が使えずに、オリジナルポート番号を設定する必要がある。

void setup() {
  pinMode(PA5,OUTPUT);
}
void loop() {
  digitalWrite(PA5,1);
  delay(400);
  digitalWrite(PA5,0);
  delay(100);
}

実ポートの接続が PA5である。