【发布时间】:2020-11-07 15:55:39
【问题描述】:
我为 Arduino UNO 编写了一个游戏手柄串行驱动程序,因此,在 Arduino IDE 中协调性很好。但是在 PySerial 最后添加 b' 和 \r\n' 。我添加了replace(),但没有任何改变......
有代码:
导入pyautogui,系统
进口时间
导入序列
ArduinoSerial=serial.Serial('/dev/ttyUSB0',115200) #Specify the correct COM port
time.sleep(1) #delay of 1 second
a = 1
while a:
ArduinoSerial.readline()
print(ArduinoSerial.readline());
data=str(ArduinoSerial.readline())
data = data.replace("\r\n", "")
print(data)
(x,y)=data.split(":") # read the x and y axis data
(X,Y)=pyautogui.position() #read the current cursor's position
x=int(x)
y=int(y)
pyautogui.moveTo(X+x,Y-y) #move cursor to desired position
有输出:
ilyabot@ilyabot-HP-Pavilion-dv6-Notebook-PC:~/Рабочий стол$ python3 joy_driver.py
b'0:0\r\n'
b'0:0\r\n'
Traceback (most recent call last):
File "joy_driver.py", line 21, in <module>
x=int(x)
ValueError: invalid literal for int() with base 10: "b'0"
【问题讨论】:
-
请参阅this question,了解如何使用
.decode()而不是str()将二进制字符串正确转换为常规字符串
标签: python python-3.x linux replace valueerror