次はSTM32ボードを積極的に使ていきたい(19) - シリアルポートの調査(2)
STM32F103C8T6搭載ボードをArduino STM32環境下にて利用する場合の
関連記事 : 「次はSTM32ボードを積極的に使ていきたい(2) - シリアルポートの調査」
起動直後のUSB-シリアル接続待ち処理において若干、推奨する作法が変わったようです。
従来
Serial.isConnected() で接続確認
void setup(void){ Serial.begin(115200); while (!Serial.isConnected()) delay(100); }
現時点
Serial で 接続確認
#define timeoutPeriod 2147483647 // Long time... about 25 days void setup(void){ Serial.begin(115200); while (!Serial) delay(100); }
この変更はUSBをサポートしている Arduino Leonardo、Micro、DueとAPIを
同じにするためのようです。
関連情報: https://github.com/rogerclarkmelbourne/Arduino_STM32/pull/270
Serial.isConnected()も現時点でも利用出来ますが、
Arduino STM32(ベースのmapleを含む)固有ですので今後は使わない方がようでしょう。
Arduino STM32のサンプルスケッチも全てSerial.isConnected()を廃止して
Serialの値で判定するように修正されています。
現在手掛けている、豊四季Tiny BASICでは次ようにしました。
無限ループだと、1.5秒だけまって接続をスルーします。
こうしないと、接続済みの時にリセットした場合、接続直後の通信データの取りこぼし
が発生します。
void setup() { for(uint8_t tm=0; tm <15 && !Serial; tm++) delay(100); ・・・











最近のコメント