質問編集履歴

1

結果の説明を追加

2021/05/28 13:50

投稿

kekke59
kekke59

スコア2

test CHANGED
File without changes
test CHANGED
@@ -130,6 +130,22 @@
130
130
 
131
131
 
132
132
 
133
+ ここで言っているポート1やポート2というのは送信用のポートのことですが,今回のソースコードではSoftwareSerialを初期化するときに与えたピンの配列と対応しています.つまりこの場合は,ピン16とピン14で受信した場合は最上位ビットに1が入って,受信に失敗してしまうということです.
134
+
135
+ ちなみに,この16,14というピン番号が問題なのかと考え,配列内でピンの順番を入れ替えても`pins`の2番目3番目に設定したピンで受信すると失敗します.おそらく,コンストラクタ内で`setRX`が呼ばれる順番が関係しているのだと思います.
136
+
137
+ ```Arduino
138
+
139
+ uint8_t pins[] = {8, 10, 16, 14};
140
+
141
+ SoftwareSerial portOne(pins);
142
+
143
+ ```
144
+
145
+
146
+
147
+
148
+
133
149
  次に`PIN_NUM`を3に変更して実験を行いました.
134
150
 
135
151
  `PIN_NUM`が3の場合は,正しく通信することができました.