質問編集履歴
6
コードの追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -201,5 +201,12 @@
|
|
|
201
201
|
|
|
202
202
|
break;
|
|
203
203
|
}
|
|
204
|
+
|
|
205
|
+
receive[0] = a;
|
|
206
|
+
receive[1] = b;
|
|
207
|
+
receive[2] = c;
|
|
208
|
+
receive[3] = d;
|
|
209
|
+
|
|
210
|
+
|
|
204
211
|
|
|
205
212
|
```
|
5
受信側のコードの追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
|
2
2
|
|
|
3
|
-
判定部分を修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
|
3
|
+
判定部分を修正したものを一番下に2つ示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
|
4
4
|
|
|
5
5
|
受信側: 開発環境HEW C言語
|
|
6
6
|
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
|
@@ -173,4 +173,33 @@
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
receive[3] = c;
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```c
|
|
179
|
+
while(1)
|
|
180
|
+
{
|
|
181
|
+
while( UART_get( &a ) ); // 受信するまで待つ
|
|
182
|
+
|
|
183
|
+
if( a != 'R' && a != 'G' && a != 'B' ) continue; //aがR、G、Bのどれかでなければ
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
while( UART_get( &b ) ); // 受信するまで待つ
|
|
187
|
+
|
|
188
|
+
if( b == 'R' || b == 'G' || b == 'B' ) continue; //bがR、G、Bのどれかであれば
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
if( c == 'R' || c == 'G' || c == 'B' ) continue; //cがR、G、Bのどれかであれば
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
while( UART_get( &d ) ); // 受信するまで待つ
|
|
198
|
+
|
|
199
|
+
if( d == 'R' || d == 'G' || d == 'B' ) continue; //dがR、G、Bのどれかであれば
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
|
|
176
205
|
```
|
4
コードの追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
|
2
2
|
|
|
3
|
-
修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
|
3
|
+
判定部分を修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
|
4
4
|
|
|
5
5
|
受信側: 開発環境HEW C言語
|
|
6
6
|
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
3
コードの追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
|
2
|
+
|
|
3
|
+
修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
|
4
|
+
|
|
2
5
|
受信側: 開発環境HEW C言語
|
|
3
6
|
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
|
4
7
|
マイコン R8C/33T
|
|
@@ -130,4 +133,44 @@
|
|
|
130
133
|
|
|
131
134
|
}
|
|
132
135
|
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
修正版
|
|
139
|
+
```c
|
|
140
|
+
``
|
|
141
|
+
do
|
|
142
|
+
{
|
|
143
|
+
do
|
|
144
|
+
{
|
|
145
|
+
do
|
|
146
|
+
{
|
|
147
|
+
do
|
|
148
|
+
{
|
|
149
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
|
150
|
+
|
|
151
|
+
}while(!((c == 'R') || (c == 'G') || (c == 'B')) );
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
receive[0] = c;
|
|
155
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
receive[1] = c;
|
|
162
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
receive[2] = c;
|
|
169
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
receive[3] = c;
|
|
133
176
|
```
|
2
間違いを訂正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
|
2
|
+
受信側: 開発環境HEW C言語
|
|
2
|
-
|
|
3
|
+
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
|
4
|
+
マイコン R8C/33T
|
|
3
5
|
UART-シリアル変換モジュールはFT232RL
|
|
4
6
|
|
|
5
7
|
受信側
|
1
間違いを訂正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
UARTの受信を文字列で
|
|
1
|
+
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
|
2
2
|
受信側: 開発環境HEW C言語 送信側: visual studio2019 windows フォームアプリケーション(.NET Framework) マイコン R8C/33T
|
|
3
3
|
UART-シリアル変換モジュールはFT232RL
|
|
4
4
|
|