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

Systole包使用问题:串口权限错误与plot_raw()参数异常

解决Systole连接USB血氧仪的两个错误

错误1:SerialException: 无法打开端口'COM4'(PermissionError 13)

  • 原因:
    • COM4端口被其他应用程序(如血氧仪配套软件、串口调试工具)占用
    • 当前用户没有访问串口的权限
    • 端口号填写错误,血氧仪实际对应的不是COM4
  • 解决方法:
    • 关闭所有可能占用该端口的软件,重启Python脚本重试
    • Windows下右键以管理员身份运行脚本;Linux/macOS下执行sudo usermod -aG dialout 你的用户名,然后重新登录系统
    • 打开设备管理器(Windows)或使用ls /dev/tty*(Linux/macOS)确认血氧仪对应的正确端口号,替换代码中的"COM4"

错误2:TypeError: plot_raw()收到意外关键字参数'show_heart_rate'

  • 原因:
    • Systole版本迭代后,plot_raw方法的参数名发生变更,原示例中的show_heart_rate已不再使用,正确参数名为show_heartrate(无下划线)
    • 若使用旧版本Systole,该方法可能根本不支持此参数
  • 解决方法:
    • 修改参数名为show_heartrate=True,适配新版本API
    • 若版本不支持该参数,可先通过oxi.heart_rate提取心率数据,再手动绘制到PPG时序图上

修正后的示例代码

from systole.recording import Oximeter
import serial

# 替换为血氧仪实际对应的COM端口,可在设备管理器中查看
ser = serial.Serial("COM4", baudrate=9600)  # 按需添加波特率等参数

# 初始化设备并采集10秒数据
oxi = Oximeter(serial=ser).setup().read(duration=10)

# 使用正确的参数名绘制PPG时序图
oxi.plot_raw(show_heartrate=True, figsize=(13, 8))

额外注意事项

  • 确认Systole版本与官方示例匹配,可通过pip show systole查看版本,若差异较大建议参考对应版本的官方文档
  • 串口初始化时需匹配血氧仪的波特率、数据位等参数,这些信息通常可在设备说明书中找到

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:05:34