在python串行端口程序中,我应该对'b'做什么?

时间:2018-08-27 10:19:17

标签: python serial-port

串行端口程序尝试从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的打印输出部分。

enter image description here

++)我刚刚检查了一下,但看不到正确方向的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'

1 个答案:

答案 0 :(得分:2)

b'... '

是python表示字节字符串的方式。错误告诉您不能使用>=比较字节和整数。

您需要在该行之前将字节字符串转换为整数。 DeepSpace指出,有一种简单的方法可以做到这一点

integer = float(res3)