在 Linux 中,要使用 SMBus(System Management Bus)讀取數據,你需要使用 i2c-tools 包中的一些命令行工具
首先,確保你的 Linux 系統已經安裝了 i2c-tools。如果沒有,請使用以下命令安裝:
對于基于 Debian 的系統(如 Ubuntu):
sudo apt-get update
sudo apt-get install i2c-tools
對于基于 RHEL 的系統(如 CentOS、Fedora):
sudo yum install i2c-tools
加載 I2C 內核模塊。根據你的硬件,你可能需要加載不同的模塊。例如,對于 Raspberry Pi,你需要加載 i2c-bcm2708
和 i2c-dev
模塊:
sudo modprobe i2c-bcm2708
sudo modprobe i2c-dev
使用 i2cdetect
命令檢測連接到 I2C 總線的設備。這將顯示設備的地址和類型。例如,要檢測 I2C 總線 1 上的設備,請運行:
sudo i2cdetect -y 1
使用 i2cget
命令讀取 SMBus 設備的數據。例如,要從地址為 0x40 的設備的寄存器 0x00 讀取一個字節,請運行:
sudo i2cget -y 1 0x40 0x00
這里,-y
參數表示不提示確認,1
是 I2C 總線編號,0x40
是設備地址,0x00
是要讀取的寄存器地址。
如果你需要連續讀取多個字節,可以使用 i2cdump
命令。例如,要從地址為 0x40 的設備的寄存器 0x00 讀取 16 個字節,請運行:
sudo i2cdump -y 1 0x40 0x00 16
這里,16
是要讀取的字節數。
通過這些步驟,你應該能夠在 Linux 中使用 SMBus 讀取數據。請注意,不同的設備可能需要不同的命令和參數。請查閱設備的文檔以獲取更多信息。