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

运行Python控制树莓派风扇HAT脚本报I/O errno 121错误如何解决

风扇HAT报错OSError 121排查与解决方法

OSError 121属于I2C总线通信失败类错误,可按以下步骤依次排查:

1 基础配置与硬件校验

  • 确认树莓派I2C接口已开启:运行sudo raspi-config,进入「Interface Options」选项找到I2C,选择开启后重启树莓派。
  • 检查风扇HAT物理连接:确认GPIO排针没有插反、没有虚接,可尝试重新拔插HAT后再测试。
  • 核对I2C总线编号:部分早期树莓派型号使用的是I2C总线0,你当前代码中使用的是smbus.SMBus(1),如果是老型号设备可尝试将参数改为0。
  • 修正文件名错误:你当前的脚本文件后缀为.pi属于格式错误,需要将后缀改为.py,否则会出现解析异常。

2 验证I2C设备地址是否匹配

  • 先安装I2C扫描工具:运行sudo apt update && sudo apt install -y i2c-tools
  • 扫描当前总线挂载的所有I2C设备:如果你用的是总线1,执行i2cdetect -y 1,如果用总线0则将命令中的1改为0。
  • 核对扫描出来的设备地址与代码中定义的addr = 0x0d是否一致,如果不一致,将代码中的addr值修改为实际扫描到的风扇HAT地址即可。

如果扫描结果中没有任何设备,说明HAT硬件损坏、I2C未正常开启或硬件连接异常,回到第一步重新排查。

3 代码问题修复

你提供的代码中缺少smbus库的导入语句,在代码开头新增一行import smbus即可。

4 权限问题排查

  • 普通用户运行I2C相关代码需要先将用户加入i2c用户组:执行sudo usermod -aG i2c $USER,执行完成后注销当前用户重新登录再运行脚本测试。
  • 也可以临时用管理员权限运行脚本验证:sudo python3 /home/pi/fam_tempf.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:15:00