串行端口程序尝试从Python打印数据 让我告诉你我使用的代码。
import serial
import time
ser =serial.Serial(port="COM1",
baudrate=926100,
bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
timeout=20)
ser.isOpen() ## open port
print ("Sensortag's connected Succesfully!.")
while 1:
res1 =ser.readline()
res3=res1[13:21]
time.sleep(1.0)
if res3 >=250:
print("Sensor has invalid value Please wait a moment.")
elif res3 < 250 & res3>=200:
print("The user's movements are abnormal. Please check.")
else:
print("The user Your movements are normal.")
print(res3)
首先,我要在程序中打印数字,看数字是否超出一定范围。但这就是问题所在。
Traceback (most recent call last):
File "C:\Users\SEOI\AppData\Local\Programs\Python\Python37-32\ㅋㅋㅋㅋ.py", line 37, in <module>
if res3 >=250: ## 3).When UART outputs a value, it outputs the required parts
TypeError: '>=' not supported between instances of 'bytes' and 'int'
在以下问题中,您确定了一个错误,因为我可以在程序中接收的值不是数字
但是,无法知道'b'
应该如何从文件输出的部分中删除该部分
我们使用滑动来解决以下问题,但已输出如图所示的'b'
。
我将把图片附加到上述B
的打印输出部分。
++)我刚刚检查了一下,但看不到正确方向的B图像,因此我将其保留为书面形式。
b'0253.787' b'0261.909' b'0268.000' b'0263.939' b'0261.909' b'0259.878' b'0257.848' b'0255.818' b'0253.787' b'0290.333' b'0282.212' b'0276.121' b'0270.030' b'0265.969' b'0263.939' b'0261.909' b'0259.878' b'0261.909' b'0263.939' b'0261.909' b'0259.878' b'0257.848' b'0255.818' b'0253.787' b'0300.484' b'0485.242' b'0633.454'
答案 0 :(得分:2)
b'... '
是python表示字节字符串的方式。错误告诉您不能使用>=
比较字节和整数。
您需要在该行之前将字节字符串转换为整数。 DeepSpace指出,有一种简单的方法可以做到这一点
integer = float(res3)