我正在尝试将从串行端口接收的ASCII字符与字符串进行比较。我无法做到这一点,即使我似乎已成功转换输入。 这是我的代码
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"
好吧,即使输入有时等于UP或DOWN,它仍然不会打印出APPLES或Bannana
答案 0 :(得分: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"
答案 1 :(得分: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"
将'str'更改为'chr',将ASCII转换为字符。除了此修改之外,还会删除来自输入流的任何其他字符。