質問編集履歴

6

コードの追加

2020/07/17 06:33

投稿

Merrifield
Merrifield

スコア31

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

受信側のコードの追加

2020/07/17 06:33

投稿

Merrifield
Merrifield

スコア31

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

コードの追加

2020/07/17 01:04

投稿

Merrifield
Merrifield

スコア31

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

コードの追加

2020/07/16 08:39

投稿

Merrifield
Merrifield

スコア31

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

間違いを訂正

2020/07/16 07:57

投稿

Merrifield
Merrifield

スコア31

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
- 受信側: 開発環境HEW C言語  送信側: visual studio2019 windows フォームアプリケーション(.NET Framework) マイコン R8C/33T
5
+ 送信側: visual studio2019 windows フォームアプリケーション(.NET Framework) 
6
+
7
+ マイコン R8C/33T
4
8
 
5
9
  UART-シリアル変換モジュールはFT232RL
6
10
 

1

間違いを訂正

2020/07/16 04:05

投稿

Merrifield
Merrifield

スコア31

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- UARTの受信を文字列で受け取れるようにしたいと考えています。4文字で送信される文字列を、受信側で一文字ずつ受け取り、それを4要素の配列に格納できるようなプログラムを考えているのですが、上手くいきません。送信側から、「R021」のように頭文字プラス三桁の数字が送られてきて、これをreceive[0] = R、receive[1] = 0、receive[1] = 2、receive[2] = 1、のように格納したいのですが、receive[0]に数字が格納されたり、ずれが起きてしまいます。下にプログラムを示すので、どこを修正すればよいのか教えていただけないでしょうか?
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