You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino通过USB串口向树莓派传数据,如何仅打印数字内容?

问题原因

你的输出存在多余内容有两个核心原因:

  1. ser.readline()返回的是字节串(bytes)类型,所以打印时会自带b''前缀;同时Arduino的Serial.println()方法会自动在输出内容末尾追加\r\n换行回车符,这部分也会被串口读取到。
  2. 你把串口初始化代码ser = serial.Serial('/dev/ttyACM0', 9600)放在了while死循环内部,会重复打开串口,后续大概率会触发串口占用报错,需要优先调整。

调整后的Python代码
import serial

# 串口初始化仅执行一次,不要放在循环内
ser = serial.Serial('/dev/ttyACM0', 9600)

while True:
    # 按顺序执行:读字节串→转UTF-8字符串→去除首尾换行/回车/空白符
    valore = ser.readline().decode('utf-8').strip()
    # 如果后续需要对数值做运算,可以再加一步转整数:valore = int(valore)
    print(valore)

操作说明
  • decode('utf-8'):将字节串转为普通字符串,消除b''前缀
  • strip():自动去除字符串首尾的所有空白类字符,包括多余的\r和\n
  • 如果需要直接使用数值做逻辑判断、计算,额外调用int()方法把字符串转为整数即可。

内容的提问来源于stack exchange,提问作者user17319247

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:18:07