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

質問編集履歴

1

プログラムコードを追加

2020/02/19 04:07

投稿

raspypy
raspypy

スコア247

title CHANGED
File without changes
body CHANGED
@@ -55,4 +55,40 @@
55
55
 
56
56
  if __name__ == '__main__':
57
57
  main()
58
+ ```
59
+
60
+ ##シリアル通信確認プログラム
61
+ ```python
62
+ import serial
63
+ import time
64
+ import threading
65
+ import Queue
66
+
67
+ class SerCom:
68
+ def __init__(self, tty, baud='9600'):
69
+ self.ser = serial.Serial(tty, baud, timeout=0.1)
70
+ self.queue = Queue.Queue()
71
+
72
+ self.event = threading.Event()
73
+ self.thread_r = threading.Thread(target=self.recv_)
74
+ self.thread_r.start()
75
+
76
+ def recv_(self):
77
+ while not self.event.is_set():
78
+ line = self.ser.readline()
79
+ if len(line) > 0:
80
+ print(line)
81
+ self.queue.put(line)
82
+
83
+ def send(self, data):
84
+ self.ser.write(data)
85
+
86
+ def stop(self):
87
+ self.event.set()
88
+ self.thread_r.join()
89
+
90
+ ser = SerCom('/dev/ttyS0', '9600')
91
+ #ser.send('test')
92
+ time.sleep(2)
93
+ ser.stop()
58
94
  ```