質問編集履歴
1
結果の説明を追加
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の場合は,正しく通信することができました.
|