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,该方法可能根本不支持此参数
- 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
相关产品推荐
相关产品推荐

