質問編集履歴
1
結果の説明を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -64,6 +64,14 @@
|
|
64
64
|
100
|
65
65
|
```
|
66
66
|
|
67
|
+
ここで言っているポート1やポート2というのは送信用のポートのことですが,今回のソースコードではSoftwareSerialを初期化するときに与えたピンの配列と対応しています.つまりこの場合は,ピン16とピン14で受信した場合は最上位ビットに1が入って,受信に失敗してしまうということです.
|
68
|
+
ちなみに,この16,14というピン番号が問題なのかと考え,配列内でピンの順番を入れ替えても`pins`の2番目3番目に設定したピンで受信すると失敗します.おそらく,コンストラクタ内で`setRX`が呼ばれる順番が関係しているのだと思います.
|
69
|
+
```Arduino
|
70
|
+
uint8_t pins[] = {8, 10, 16, 14};
|
71
|
+
SoftwareSerial portOne(pins);
|
72
|
+
```
|
73
|
+
|
74
|
+
|
67
75
|
次に`PIN_NUM`を3に変更して実験を行いました.
|
68
76
|
`PIN_NUM`が3の場合は,正しく通信することができました.
|
69
77
|
|