フォト
2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

« 次はSTM32ボードを積極的に使ていきたい - ピン割付の調査 | トップページ | 次はSTM32ボードを積極的に使ていきたい(3) - アナログ入力 »

2016年12月 3日 (土)

次はSTM32ボードを積極的に使ていきたい(2) - シリアルポートの調査

STM32F103C8T6搭載ボードをArduino STM32環境下にて利用する場合に
利用出来るシリアルポートを調べてみました。

事前調査の通り、USB経由のシリアルを含め、4本使えました。
(UART1のピン割り付けは間違っていたので修正しました)。
これは大変便利です。シリアル通信を利用するプログラムを作る時、
もう一本使えるとデバッグが楽になります。

Dscn6201


動作確認に利用したスケッチ

#define LED_PIN D32 // PC13 or 32 or D32
void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin();
  while (!Serial.isConnected()) delay(100);
  Serial.println("Serial USBport");  
  Serial1.begin(115200);
  Serial1.println("Serial port1");
  Serial2.begin(115200);
  Serial2.println("Serial port2");
  Serial3.begin(115200);
  Serial3.println("Serial port3");
}

void loop() {
  digitalWrite(LED_PIN, HIGH); 
  delay(200);  
  digitalWrite(LED_PIN, LOW); 
  delay(200);
}

USB経由のシリアル通信はSerialオブジェクト、UART1、UART2、UART3が
Serial1、Serial2、Serail3オブジェクト使って利用出来ます。

Uplpad methodの指定の指定によっては、使えないポートがあるようです。
私は"STM32duino boot loader"指定していますが、"Serail"を指定すると
コンパイル時にSerial、Serail3を指定でエラーとなります。

02

USB経由のシリアル通信はちょと特殊な利用となります。
通信速度の指定をする必要がありません。指定してもエラーになりませんが、
指定値は無視されます。

最初は接続時に転送速度を自動調整しているのかと思ったのですが、
どうも違うようです。

対応していないような、通信速度でも正しく表示されます。

03

04

05

別の大量の出力を行うアスキーコード表示を行うスケッチを試すと
TeraTermの通信速度を極端に変えても常に同じ速度で出力されているようです。
ちょっと謎です。

また、USB経由でプログラムの書込みを行うため、
書込み中や直後ではUSB経由のシリアル通信は切断されます。
そのため、下記の1行を入れて、接続の確立をチェックと待ちが必要があります。
   while (!Serial.isConnected()) delay(100);

次は、PWM、analogReadが8ビット扱いなのか等を調べてみます。

追記 2017/07/19

  Serial.isConnected() の利用は非推奨となったようです。
  詳細については、下記を参照下さい。
    ・ 「次はSTM32ボードを積極的に使ていきたい(19) - シリアルポートの調査(2) 」

« 次はSTM32ボードを積極的に使ていきたい - ピン割付の調査 | トップページ | 次はSTM32ボードを積極的に使ていきたい(3) - アナログ入力 »

arduino」カテゴリの記事

ARM」カテゴリの記事

STM32」カテゴリの記事

コメント

コメントを書く

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

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/64575996

この記事へのトラックバック一覧です: 次はSTM32ボードを積極的に使ていきたい(2) - シリアルポートの調査:

« 次はSTM32ボードを積極的に使ていきたい - ピン割付の調査 | トップページ | 次はSTM32ボードを積極的に使ていきたい(3) - アナログ入力 »