簡體   English   中英

樹莓派 i2c 讀/寫錯誤

[英]Raspberry Pi i2c Read/Write Error

像許多人一樣,我使用 Pi 已經有一段時間了,但從未真正用它做過任何事情。 我終於有時間連接一個 MPU6050 IMU 來玩了。 它使用 i2c 進行通信,因此我按照 Adafruit 的指南進行了有關啟用此處顯示的i2c Adafruit i2c 的操作

然后我將 MPU6050 連接到 i2c 總線,並使用i2cdetect -y 1我能夠在 0x68 處看到一個設備。

但是,當嘗試從設備讀取或寫入時,我收到了權限被拒絕的錯誤,所以我按照這篇文章來解決這個問題/dev/i2c-x permission 它告訴我修改 /lib/udev/rules.d/60-i2c-tools.rules

KERNEL=="i2c-0"     , GROUP="i2c", MODE="0660"
KERNEL=="i2c-[1-9]*", GROUP="i2c", MODE="0666"

這有效,但是當實際嘗試使用 C++ 讀取或寫入時,我收到“輸入/輸出錯誤”。 同樣,在 Python 中使用 smbus 我得到[Errno 5] Input/output error當連接到 Arduino 時,我可以讓這個設備完美地工作。

我已經用盡了我能找到的所有論壇帖子。 希望我只是做了一些愚蠢的事情。 有人有任何想法嗎?

運行 Raspbian 的原始模型 B RPi,如果有幫助的話。

干杯

在正常情況下,您實際上不需要更改/lib/udev/rules.d/60-i2c-tools.rules文件,因此我建議您重新安裝 raspbian。

將 MPU6050 連接到正確的引腳:

在此處輸入圖片說明

然后下載官方的 Adafruit 庫:

使用$ sudo raspi-config檢查 Raspberry Pi 的 I2C 是否啟用,並確保 I2C 地址正確,另外使用$ i2cdetect -y 1檢查,如下所示:

try:
  bus = Adafruit_I2C(address=0)
  print("Default I2C bus is accessible")
except:
  print("Error accessing default I2C bus")

mcp = None

for i in range(0x00, 0x28):
    try:
        mcp = Adafruit_MCP230XX(address=i, num_gpios=16)
        break
    except:
        pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM