【发布时间】:2020-01-09 17:04:55
【问题描述】:
我正在尝试使用以下 Python 脚本从 Arduino 串行端口读取传感器值:
import serial
ser = serial.Serial("COM5", baudrate=9600, timeout=1)
def get_val():
ser.write(b'g')
return ser.readline().decode().rstrip()
while 1:
data = get_val()
print(data)
到目前为止,一切都运行良好,python 将控制台上的传感器值打印为字符串。但是当我尝试将字符串“数据”转换为整数时,我收到以下错误消息:
Traceback (most recent call last):
File "[...] requestDataPoint.py", line 18, in <module>
print(int(data))
ValueError: invalid literal for int() with base 10: ''
这里有什么问题?
【问题讨论】:
-
如果你只打印没有 int 会得到什么
-
我得到一组传感器值,如:899 895 847 847 899 871 843 871 867 843 895 871 899 843 847 867 895 843 895 851 851 867 867 871 843 895 847 867 843 867 871 871
-
喜欢整件事吗?还是一次一个?
-
while 循环的每次迭代都有一个。
-
让我困惑的是“无效文字”后面的字符串是空的:''
标签: python string arduino integer