質問編集履歴
6
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -404,6 +404,20 @@
|
|
404
404
|
|
405
405
|
}
|
406
406
|
|
407
|
+
|
408
|
+
|
409
|
+
receive[0] = a;
|
410
|
+
|
411
|
+
receive[1] = b;
|
412
|
+
|
413
|
+
receive[2] = c;
|
414
|
+
|
415
|
+
receive[3] = d;
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
|
407
421
|
|
408
422
|
|
409
423
|
```
|
5
受信側のコードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
判定部分を修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
5
|
+
判定部分を修正したものを一番下に2つ示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -349,3 +349,61 @@
|
|
349
349
|
receive[3] = c;
|
350
350
|
|
351
351
|
```
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
```c
|
356
|
+
|
357
|
+
while(1)
|
358
|
+
|
359
|
+
{
|
360
|
+
|
361
|
+
while( UART_get( &a ) ); // 受信するまで待つ
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
if( a != 'R' && a != 'G' && a != 'B' ) continue; //aがR、G、Bのどれかでなければ
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
while( UART_get( &b ) ); // 受信するまで待つ
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
if( b == 'R' || b == 'G' || b == 'B' ) continue; //bがR、G、Bのどれかであれば
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
if( c == 'R' || c == 'G' || c == 'B' ) continue; //cがR、G、Bのどれかであれば
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
while( UART_get( &d ) ); // 受信するまで待つ
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
if( d == 'R' || d == 'G' || d == 'B' ) continue; //dがR、G、Bのどれかであれば
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
|
402
|
+
|
403
|
+
break;
|
404
|
+
|
405
|
+
}
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
```
|
4
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
5
|
+
判定部分を修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
6
6
|
|
7
7
|
|
8
8
|
|
3
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
2
2
|
|
3
|
+
|
4
|
+
|
5
|
+
修正したものを一番下に示します。これも上手くいかなかったのですが、どこがおかしいのか教えていただけないでしょうか?
|
6
|
+
|
7
|
+
|
8
|
+
|
3
9
|
受信側: 開発環境HEW C言語
|
4
10
|
|
5
11
|
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
@@ -263,3 +269,83 @@
|
|
263
269
|
|
264
270
|
|
265
271
|
```
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
修正版
|
276
|
+
|
277
|
+
```c
|
278
|
+
|
279
|
+
``
|
280
|
+
|
281
|
+
do
|
282
|
+
|
283
|
+
{
|
284
|
+
|
285
|
+
do
|
286
|
+
|
287
|
+
{
|
288
|
+
|
289
|
+
do
|
290
|
+
|
291
|
+
{
|
292
|
+
|
293
|
+
do
|
294
|
+
|
295
|
+
{
|
296
|
+
|
297
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
}while(!((c == 'R') || (c == 'G') || (c == 'B')) );
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
receive[0] = c;
|
308
|
+
|
309
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
receive[1] = c;
|
322
|
+
|
323
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
receive[2] = c;
|
336
|
+
|
337
|
+
while( UART_get( &c ) ); // 受信するまで待つ
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
}while(!((c != 'R') && (c != 'G') && (c != 'B')));
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
receive[3] = c;
|
350
|
+
|
351
|
+
```
|
2
間違いを訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
UARTの受信を文字列で出来るようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
|
2
2
|
|
3
|
+
受信側: 開発環境HEW C言語
|
4
|
+
|
3
|
-
|
5
|
+
送信側: visual studio2019 windows フォームアプリケーション(.NET Framework)
|
6
|
+
|
7
|
+
マイコン R8C/33T
|
4
8
|
|
5
9
|
UART-シリアル変換モジュールはFT232RL
|
6
10
|
|
1
間違いを訂正
test
CHANGED
File without changes
|
test
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
|
|
3
3
|
受信側: 開発環境HEW C言語 送信側: visual studio2019 windows フォームアプリケーション(.NET Framework) マイコン R8C/33T
|
4
4
|
|