日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

启明云端分享|Linux系统下如何调试I2C设备

發布時間:2024/10/14 linux 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 启明云端分享|Linux系统下如何调试I2C设备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

提示:Linux系統中,一些傳感器通常掛載在I2C總線上,比如RTC和CSI等。我們在調試這些設備的時候,就需要了解Linux系統中操作I2C總線的方法。本文將詳細介紹在Linux系統中如何調試I2C設備。


1、查看系統中的I2C總線: ls /dev/i2c-* 或 i2cdetect -l



2、列出系統中I2C總線上掛載的設備:i2cdetect -y -r 0/1/2

attachments-2020-04-a0ZQEANV5e9969257b103.png可以看到,在I2C-1上掛載了一個設備,這個設備的I2C地址為0x51


3、查看設備寄存器的值:i2cdump -f -y 1 0x51


4、設置寄存器的值:i2cset -f -y 1 0x51 0x00 0xaa


5、i2cdump和i2cset默認設備的寄存器是8位的,而有些設備的寄存器則是16位的,因此16位的設備不能再通過i2cdump和i2cset來調試,只能使用i2ctransfer,首先在buildroot/busybox中查找是否提供該命令:

attachments-2020-04-5e4F8UB75e996ddad9d5f.png可以看到是沒有提供i2ctransfer的,我們需要通過單獨編譯i2c-tools的方式來移植,i2c-tools源碼可以在這里下載https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/

我們選擇最新的4.1版本

attachments-2020-04-f76BvjVg5e996eac6a2bb.png在ubuntu下解壓并進入解壓目錄,新建install目錄

在ubuntu下解壓并進入解壓目錄,新建install目錄

接著編輯Makefile,設置交叉編譯鏈和安裝目錄:

執行make開始編譯

執行make install 安裝

將install/bin、install/sbin和install/lib目錄的所有文件拷貝到板子文件系統/bin,/sbin和/lib目錄下

6、使用i2ctransfer讀8位寄存器:i2ctransfer -f -y 1 w1@0x51 0xff r1

使用i2ctransfer讀16位寄存器:i2ctransfer -f -y 1 w1@0x51 0x01 r2

使用i2ctransfer寫8位寄存器的值:i2ctransfer -f -y 1 w2@0x51 0xff 0x11

使用i2ctransfer寫16位寄存器的值:i2ctransfer -f -y 1 w3@0x51 0x01 0xaa 0xbb

總結

以上是生活随笔為你收集整理的启明云端分享|Linux系统下如何调试I2C设备的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。