teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

追加

2021/10/20 04:29

投稿

NKJSM
NKJSM

スコア58

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  下記のようにSerialをセットアップして、もし何かを受信した場合メッセージを返答するプログラムを作成しようとしたとき。
2
2
  シリアルモニタ接続時にsetupのSerial.plintlnの前にloopのSerial.available()内のSerial.plintlnが途中まで紛れ込んでしまいます。
3
+ tes?が入力されて100ms秒後にSerial OKが書かれてました。
3
4
  シリアルモニタ接続後にリセットを掛けた場合、この現象が起きないのは確認したのですが、リセットを行わずに接続時にSerial.available()を反応させないためにはどのような対処をすればよいでしょうか?
4
5
 
5
6
  ```Arduino

2

追加

2021/10/20 04:29

投稿

NKJSM
NKJSM

スコア58

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  下記のようにSerialをセットアップして、もし何かを受信した場合メッセージを返答するプログラムを作成しようとしたとき。
2
+ シリアルモニタ接続時にsetupのSerial.plintlnの前にloopのSerial.available()内のSerial.plintlnが途中まで紛れ込んでしまいます。
2
- シリアルモニタ接続時にsetupのSerial.plintlnの前にloopのSerial.available()内のSerial.plintlnが途中まで紛れ込んでしまいます。シリアルモニタ接続後にリセットを掛けた場合、この現象が起きないのは確認したのですが、リセットを行わずに接続時にSerial.available()を反応させないためにはどのような対処をすればよいでしょうか?
3
+ シリアルモニタ接続後にリセットを掛けた場合、この現象が起きないのは確認したのですが、リセットを行わずに接続時にSerial.available()を反応させないためにはどのような対処をすればよいでしょうか?
3
4
 
4
5
  ```Arduino
5
6
 
@@ -21,4 +22,32 @@
21
22
  ###########結果###############
22
23
  10:37:56.717 -> tes⸮Serial OK
23
24
 
25
+ ```
26
+
27
+
28
+ また、下記のようにloop内にdelayを挟んだところ、正常な応答が得られましたので、
29
+ ・接続時に何かしらデータが入り、if (Serial.available() > 0)を実行する
30
+ ・Serial.println("testmess");送信中にsetupが割り込み、送信が中断される
31
+ ・中断されて改行が入っていないのでその続きでSerial.println("Serial OK");が書かれる
32
+ の流れだと思うのですが、Delayでは安定性に不安が残りますし、なにより初回接続時以外は完全に無駄です。何かほかに対処法はないでしょうか?
33
+
34
+ ```Arduino
35
+
36
+
37
+ void setup() {
38
+ Serial.begin(115200);
39
+ Serial.setTimeout(10);
40
+ delay(100);
41
+ Serial.println("Serial OK");
42
+
43
+ }
44
+
45
+
46
+
47
+ void loop() {
48
+ if (Serial.available() > 0) {
49
+ delay(1);
50
+ Serial.println("testmess");
51
+ }
52
+ }
24
53
  ```

1

文法の修正

2021/10/20 04:13

投稿

NKJSM
NKJSM

スコア58

title CHANGED
@@ -1,1 +1,1 @@
1
- ArduinoでSerialを接続した時にSerial.available()が反応してしま
1
+ ArduinoでSerialを接続した時にSerial.available()が反応してしまっている
body CHANGED
File without changes