質問編集履歴
3
わかりやすく
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
tkinterを使って、root.after(10, readSerial)によってシリアル信号を受け取る
|
1
|
+
tkinterを使って、root.after(10, readSerial)によってシリアル信号をサイクリックに受け取る
|
body
CHANGED
File without changes
|
2
進捗更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -258,4 +258,56 @@
|
|
258
258
|
### **補足情報(FW/ツールのバージョンなど)**
|
259
259
|
Windows10、
|
260
260
|
Arduino1.8.9
|
261
|
-
Python.Python.3.7.4
|
261
|
+
Python.Python.3.7.4
|
262
|
+
|
263
|
+
### **追記8/17**
|
264
|
+
現在のスクリプトを記載します。
|
265
|
+
ボタンが2つあって、
|
266
|
+
1つがstartSerial()とstopSerial()を割り当てています。
|
267
|
+
startSerial()によって受信開始(とうより読み込み開始?)して、
|
268
|
+
出力。
|
269
|
+
その途中にstopSerial()のボタンを押すと中断するようにしたい。
|
270
|
+
|
271
|
+
しかし、現状では受信開始してしまうとコントロールができなくなり、
|
272
|
+
ボタンを押すことができません。
|
273
|
+
|
274
|
+
```ここに言語を入力
|
275
|
+
ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
|
276
|
+
|
277
|
+
def readSerial(figS):
|
278
|
+
global ser, fig
|
279
|
+
print("a")
|
280
|
+
'''
|
281
|
+
i = 0
|
282
|
+
b = True
|
283
|
+
ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
|
284
|
+
while b == True:
|
285
|
+
data = ser.readall()
|
286
|
+
print(data)
|
287
|
+
i = i + 1
|
288
|
+
if (i>100):
|
289
|
+
b = False
|
290
|
+
ser.close()
|
291
|
+
'''
|
292
|
+
#ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
|
293
|
+
if flgS == True:
|
294
|
+
while True:
|
295
|
+
rxData = ser.readall()
|
296
|
+
rxData2 = rxData.strip().decode('utf-8')
|
297
|
+
print(rxData)
|
298
|
+
if len(rxData) > 0:
|
299
|
+
txt.insert('end', rxData2)
|
300
|
+
break
|
301
|
+
root.after(10, readSerial(True))
|
302
|
+
|
303
|
+
|
304
|
+
def startSerial():
|
305
|
+
print("Start serial")
|
306
|
+
#ser = serial.Serial('COM3', 9600, timeout=0.1, writeTimeout=0)
|
307
|
+
readSerial(True)
|
308
|
+
|
309
|
+
def stopSerial():
|
310
|
+
print("Stop serial")
|
311
|
+
#ser.close()
|
312
|
+
readSerial(False)
|
313
|
+
```
|
1
改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -230,7 +230,23 @@
|
|
230
230
|
### **発生している問題・エラーメッセージ**
|
231
231
|
エラーはありません。
|
232
232
|
|
233
|
+
ただ、シェルに文字が出てきません。
|
234
|
+
ただ、改行はしているみたいです。
|
235
|
+
上記のプログラムでは画面がスクロールされている状態です。
|
233
236
|
|
237
|
+
スクリプト内部の出力を、print(rxData2)からprint(rxData)にすると
|
238
|
+
バイナリの何かしらを受信していることはわかります。
|
239
|
+
送信と受信のタイミングでしょうか?
|
240
|
+
※ちなみにシリアルのボーレートはすべて9600に統一していますので、
|
241
|
+
スクリプトの書き方が悪いように推測しています。
|
242
|
+
```ここに言語を入力
|
243
|
+
b''
|
244
|
+
b''
|
245
|
+
b''
|
246
|
+
b''
|
247
|
+
b''
|
248
|
+
```
|
249
|
+
|
234
250
|
### **試したこと**
|
235
251
|
readline()を
|
236
252
|
read_all()、read()に変えてみる。
|