質問編集履歴
9
補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
シリアルデータを送信すると1回目の送信には成功しますが、2回目以降は0が送信されてしまいます。
|
5
5
|
ちなみにArduino Megaでは切り替えをすることができていて、通信することができます。
|
6
6
|
原因と下記の理想の受信データにする方法を教えていただきたいです。
|
7
|
+
※この対象Dueの通信相手は別DueのSerial1のtx/rxで、その別DueはSerial1で受信したデータをそのまま16進数でUSBケーブルで接続したPCのシリアルモニタに送っています。
|
7
8
|
|
8
9
|
### 該当のソースコード
|
9
10
|
```Arduino
|
8
図追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,6 +54,9 @@
|
|
54
54
|
00
|
55
55
|
|
56
56
|
```
|
57
|
+
### 接続図
|
58
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-25/489d8782-e21d-44e2-88d4-d22134771d5e.png)
|
59
|
+
|
57
60
|
### 補足情報
|
58
61
|
【Arduino Due】
|
59
62
|
https://store-usa.arduino.cc/collections/boards/products/arduino-due
|
7
マルチポスト
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,3 +62,8 @@
|
|
62
62
|
【データシート】
|
63
63
|
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11057-32-bit-Cortex-M3-Microcontroller-SAM3X-SAM3A_Datasheet.pdf
|
64
64
|
|
65
|
+
### マルチポスト
|
66
|
+
https://teratail.com/questions/h3km9w6nkmhjgm
|
67
|
+
https://qiita.com/alyn/questions/78d9963e81f53ab13f75
|
68
|
+
https://ja.stackoverflow.com/questions/91802/digitalwrite%e3%81%a8serial1-write%e3%81%ae%e5%88%87%e3%82%8a%e6%9b%bf%e3%81%88%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6
|
69
|
+
|
6
ついき
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
void setup() {
|
11
11
|
const byte txData[6] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
|
12
12
|
|
13
|
-
//Serial1.write (1)
|
13
|
+
//Serial1.write (1回目)
|
14
14
|
Serial1.begin(9600);
|
15
15
|
Serial1.write(txData, 6);
|
16
16
|
Serial1.end();
|
@@ -23,7 +23,7 @@
|
|
23
23
|
digitalWrite(18, HIGH);
|
24
24
|
delay(100);
|
25
25
|
|
26
|
-
//Serial1.write (2)
|
26
|
+
//Serial1.write (2回目以降)
|
27
27
|
for(byte i = 0; i < 5; i++)
|
28
28
|
{
|
29
29
|
Serial1.begin(9600);
|
5
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
しかしdigitalWrite()からSerial1.write()を実行すると正しくシリアル通信をすることができません。
|
4
4
|
シリアルデータを送信すると1回目の送信には成功しますが、2回目以降は0が送信されてしまいます。
|
5
5
|
ちなみにArduino Megaでは切り替えをすることができていて、通信することができます。
|
6
|
-
原因と
|
6
|
+
原因と下記の理想の受信データにする方法を教えていただきたいです。
|
7
7
|
|
8
8
|
### 該当のソースコード
|
9
9
|
```Arduino
|
@@ -38,13 +38,6 @@
|
|
38
38
|
|
39
39
|
}
|
40
40
|
```
|
41
|
-
### シリアルモニタ(実際の受信データ)
|
42
|
-
```
|
43
|
-
AA BB CC DD EE FF
|
44
|
-
00
|
45
|
-
|
46
|
-
```
|
47
|
-
|
48
41
|
### シリアルモニタ(理想の受信データ)
|
49
42
|
```
|
50
43
|
AA BB CC DD EE FF
|
@@ -55,7 +48,12 @@
|
|
55
48
|
AA BB CC
|
56
49
|
|
57
50
|
```
|
51
|
+
### シリアルモニタ(実際の受信データ)
|
52
|
+
```
|
53
|
+
AA BB CC DD EE FF
|
54
|
+
00
|
58
55
|
|
56
|
+
```
|
59
57
|
### 補足情報
|
60
58
|
【Arduino Due】
|
61
59
|
https://store-usa.arduino.cc/collections/boards/products/arduino-due
|
4
わかりやすく
test
CHANGED
File without changes
|
test
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
for(byte i = 0; i < 5; i++)
|
28
28
|
{
|
29
29
|
Serial1.begin(9600);
|
30
|
-
Serial1.write(txData,
|
30
|
+
Serial1.write(txData, 3);
|
31
31
|
Serial1.flush();
|
32
32
|
Serial1.end();
|
33
33
|
delay(1000);
|
@@ -48,11 +48,11 @@
|
|
48
48
|
### シリアルモニタ(理想の受信データ)
|
49
49
|
```
|
50
50
|
AA BB CC DD EE FF
|
51
|
-
AA BB CC
|
51
|
+
AA BB CC
|
52
|
-
AA BB CC
|
52
|
+
AA BB CC
|
53
|
-
AA BB CC
|
53
|
+
AA BB CC
|
54
|
-
AA BB CC
|
54
|
+
AA BB CC
|
55
|
-
AA BB CC
|
55
|
+
AA BB CC
|
56
56
|
|
57
57
|
```
|
58
58
|
|
3
ほそく
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,6 +28,8 @@
|
|
28
28
|
{
|
29
29
|
Serial1.begin(9600);
|
30
30
|
Serial1.write(txData, 6);
|
31
|
+
Serial1.flush();
|
32
|
+
Serial1.end();
|
31
33
|
delay(1000);
|
32
34
|
}
|
33
35
|
}
|
2
補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,21 +24,36 @@
|
|
24
24
|
delay(100);
|
25
25
|
|
26
26
|
//Serial1.write (2)
|
27
|
+
for(byte i = 0; i < 5; i++)
|
28
|
+
{
|
27
|
-
Serial1.begin(9600);
|
29
|
+
Serial1.begin(9600);
|
28
|
-
Serial1.write(txData, 6);
|
30
|
+
Serial1.write(txData, 6);
|
31
|
+
delay(1000);
|
32
|
+
}
|
29
33
|
}
|
30
34
|
|
31
35
|
void loop() {
|
32
36
|
|
33
37
|
}
|
34
38
|
```
|
35
|
-
### シリアルモニタ(受信データ)
|
39
|
+
### シリアルモニタ(実際の受信データ)
|
36
|
-
|
37
40
|
```
|
38
41
|
AA BB CC DD EE FF
|
39
42
|
00
|
40
43
|
|
41
44
|
```
|
45
|
+
|
46
|
+
### シリアルモニタ(理想の受信データ)
|
47
|
+
```
|
48
|
+
AA BB CC DD EE FF
|
49
|
+
AA BB CC DD EE FF
|
50
|
+
AA BB CC DD EE FF
|
51
|
+
AA BB CC DD EE FF
|
52
|
+
AA BB CC DD EE FF
|
53
|
+
AA BB CC DD EE FF
|
54
|
+
|
55
|
+
```
|
56
|
+
|
42
57
|
### 補足情報
|
43
58
|
【Arduino Due】
|
44
59
|
https://store-usa.arduino.cc/collections/boards/products/arduino-due
|
1
URL修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,7 +41,8 @@
|
|
41
41
|
```
|
42
42
|
### 補足情報
|
43
43
|
【Arduino Due】
|
44
|
+
https://store-usa.arduino.cc/collections/boards/products/arduino-due
|
44
|
-
https://
|
45
|
+
https://content.arduino.cc/assets/A000056-full-pinout.pdf
|
45
46
|
|
46
47
|
【データシート】
|
47
48
|
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11057-32-bit-Cortex-M3-Microcontroller-SAM3X-SAM3A_Datasheet.pdf
|