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

如何将Raspberry Pi 4B设置为I2C从机,解决i2cdetect无检测结果问题

问题根因

你运行i2cdetect -y 1扫不到已配置的I2C从机地址,核心原因如下:
pigpio的bsc_i2c功能启用的是树莓派4B的BSC从模式接口,默认绑定I2C0总线,对应引脚为BCM编号的GPIO0(SDA0)、GPIO1(SCL0)。而i2cdetect -y 1扫描的是默认用作主机的I2C1总线,对应引脚为GPIO2(SDA1)、GPIO3(SCL1),总线不匹配自然扫不到设备。

排查&解决步骤

  • 先确认pigpio服务已正常启动,运行代码前执行命令:
    sudo systemctl start pigpiod
    
  • 用sudo权限运行你的从机配置Python代码,避免硬件操作权限不足导致配置失效:
    import pigpio
    
    pi = None
    slave_addr = 0x13
    
    def i2cInterrupt():
       global pi
       global slave_addr
       status, bytes_read, data = pi.bsc_i2c(slave_addr) 
    
       if bytes_read:
          print(data)
    
    pi = pigpio.pi()
    int_handler = pi.event_callback(pigpio.EVENT_BSC, i2cInterrupt)
    pi.bsc_i2c(slave_addr)
    
  • 启用树莓派I2C0总线:编辑/boot/firmware/config.txt(旧版系统为/boot/config.txt),添加如下配置后重启设备:
    dtparam=i2c_vc=on
    force_eeprom_read=0
    disable_poe_fan=1
    
    以上配置同时关闭了GPIO0/GPIO1的默认EEPROM、POE风扇功能占用,避免引脚冲突。
  • 硬件接线调整:将PSoC的I2C SDA、SCL引脚接到树莓派的GPIO0、GPIO1上,确保两个设备共地。
  • 扫描对应总线验证:运行以下命令即可扫到你配置的0x13从机地址:
    i2cdetect -y 0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:57:04