2013-07-19 51 views
1

我試圖將我從串行端口接收到的ASCII字符與字符串進行比較。即使看起來我已經成功地轉換了輸入,但我無法做到這一點。 這裏是我的代碼如何將ASCII字符轉換爲Python中的字符串

import serial 
import time 
port="/dev/ttyUSB0" 
serialArduino= serial.Serial(port,9600) 
serialArduino.flushInput() 
inputs="" 
while True: 
    inputsp=serialArduion.readline() 
    for letter in inputsp: 
     inputs=inputs+ str(letter) 
    print inputs 
    if inputs=="DOWN": 
     print "APPLES" 
    elif inputs=="UP" 
     print "Bannana" 

確定,所以即使輸入有時等於向上或向下它仍然不能打印出蘋果或Bannana

回答

2

readline()的返回值包含換行符。你需要去掉換行符。

import serial 
import time 
port="/dev/ttyUSB0" 
serialArduino= serial.Serial(port,9600) 
serialArduino.flushInput() 

while True: 
    inputs = serialArduion.readline().rstrip() 
    if inputs == "DOWN": 
     print "APPLES" 
    elif inputs == "UP" 
     print "Bannana" 
+0

它的工作原理,謝謝sooooo多!!!!你不知道你幫了多少 – jped

0

試試這個:

while True: 
    inputsp=serialArduion.readline() 
    for letter in inputsp: 
     inputs=inputs+ chr(letter) 
    print inputs 
    if inputs.lower() =="down": 
     print "APPLES" 
    elif inputs.lower() =="up": 
     print "Bannana" 

只是改變了「海峽'轉換爲'chr',將ASCII轉換爲字符。除此修改外,請去除輸入流中的其他任何字符。

相關問題