質問するログイン新規登録

質問編集履歴

6

コードの追加

2020/07/17 06:33

投稿

Merrifield
Merrifield

スコア31

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

受信側のコードの追加

2020/07/17 06:33

投稿

Merrifield
Merrifield

スコア31

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

コードの追加

2020/07/17 01:04

投稿

Merrifield
Merrifield

スコア31

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

コードの追加

2020/07/16 08:39

投稿

Merrifield
Merrifield

スコア31

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

間違いを訂正

2020/07/16 07:57

投稿

Merrifield
Merrifield

スコア31

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

1

間違いを訂正

2020/07/16 04:05

投稿

Merrifield
Merrifield

スコア31

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