首页 文章

串行数据过滤

提问于
浏览
0

我在Arduino Leonardo上使用LM-35温度传感器 .
然后我用Python连接这个Arduino并通过串口下载温度值 .

代码正在运行,Arduino正在发送数据,但我需要做的是将数值与汇集在一起的其他字符分开 . 当我运行代码时,我在我的显示器上获得了类似的结果:

b'26.88\r\n'
<class 'bytes'>

我需要做的是将值26.88(摄氏温度)分开作为浮点数,但我不知道我该怎么做?

这是我的代码如下:

import serial, time

ser = serial.Serial('COM4', 9600)

while 1:
    str1 = ser.readline()
    print (str1)
    print (type(str1))

1 回答

  • 0

    您需要删除\ r和\ n字符 . 试试这个:

    import serial, time
    
    ser = serial.Serial('COM4', 9600)
    
    while 1:
        str1 = ser.readline()
    
        finalValue = str1.decode('utf-8').replace('\r','').replace('\n','')
        print (float(finalValue))
    

相关问题