我有一个Arduino板通过串口发送数据和一段读取该数据的Python代码 . Arduino板只发送它从TMP36传感器读取的温度,当我使用Arduino IDE附带的端口监视器检查端口时,我看到:
20.3
20.3
20.2
20.2
...
这是完全正确的 . 现在,当我使用Python读取串口时,我得到了这个:
b'20.32\r\n'
b'20.32\r\n'
b'20.32\r\n'
b'20.80\r\n'
...
那个b''做了什么?我该如何处理字符串,以便正确显示数字?
这是我正在使用的代码:
import serial
ser = serial.Serial('/dev/ttyACM0', 9600)
while True:
message = ser.readline()
print(message)
抱歉,如果这是一个愚蠢的问题,但我是Arduino,Python和串口编程的新手:)
2 回答
Python 3中的
b
前缀仅表示它是bytes
文字 . 它's not part of the output, that'只是告诉你的类型 .\r\n
是常见的Carriage-Return和换行符行结尾字符 . 您可以通过调用strip()
从字符串中删除它 .由于这些是返回的浮点数,我猜你也会想要在阅读之后以某种方式使用它们:
也可以看看:
您也可以一次使用
decode()
和strip()
.会给你: