回答編集履歴

2

一文追加

2020/01/19 08:59

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -18,9 +18,9 @@
18
18
 
19
19
  // n == 2 なら
20
20
 
21
- rxbuf[0] = buf3[0];
21
+ rxbuf[0] = buf3[0]; // 一文字目
22
22
 
23
- rxbuf[1] = buf3[1];
23
+ rxbuf[1] = buf3[1]; // 二文字目
24
24
 
25
25
 
26
26
 
@@ -29,3 +29,21 @@
29
29
  で受信文字を受け取れる可能性があります。
30
30
 
31
31
  ただし、最低でも char buf3[2]; とかして、buf3[] を2バイト以上にしておくこと。実際はもう少し大きな配列にするんじゃないかな。
32
+
33
+
34
+
35
+ なお、質問のコードは
36
+
37
+ ```C
38
+
39
+ if(i<10){ // この i は何?
40
+
41
+ rxbuf[i]=buf3[0]; // 常にbuf3[0] をコピーする
42
+
43
+ i++;
44
+
45
+ }
46
+
47
+ ```
48
+
49
+ となっており、ループしても、二文字以上受信できていても、 rxbuf[i] には一文字目しかコピーされませんよ。

1

一文追加

2020/01/19 08:58

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -1,4 +1,6 @@
1
1
  そもそも buf3[] をどう定義したのかわかりません。そこを明記してほしいのだけど。
2
+
3
+ if(i<10){ という判定も意味不明。i はどこに? 10 としたのはなぜ?
2
4
 
3
5
 
4
6