91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux控制I2C/SMBus設備

CHANBAEK ? 來源:頭條號科G棧 ? 作者:頭條號科G棧 ? 2023-03-23 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

平臺:樹莓派 bcm2835 Raspberry Pi 3 Model B Rev 1.2

I2C是Philips開發的一種兩線通信協議,常用于一些對速度要求不高的小型器件上。SMBus是系統管理總線,基于I2C協議,大部分情況下二者兼容。

這次使用mpu6050作為I2C外設,學習Linux下I2C的應用開發。 樹莓派默認I2C可能沒有打開,需要配置重啟,具體方法這里不贅述。最終會在/dev下生成i2c-1設備。

poYBAGQbsx-ABKsSAAA9S4ro0uE175.jpg

1、需要的頭文件

pYYBAGQbsx-Ab_0RAABkaCBl-ic116.jpg

2、打開I2C設備

打開設備文件與打開普通文件沒有區別,使用open函數以讀寫的方式打開,返回值是該設備文件的文件描述符。

poYBAGQbsyCAXYbNAABMK-_Z830958.jpg

3、設置從設備的地址

每個I2C設備都有一個設備地址,使用ioctl函數設置這個地址。

pYYBAGQbsyGADe-bAABMf-2pB4w668.jpg

4、讀寫設備

到這里就可以讀寫設備了,Linux提供兩種方式。

a.使用write和read函數

poYBAGQbsyGAYdlFAACujYkU1BQ932.jpg

b.使用smbus提供的函數

pYYBAGQbsyKAQaunAAF6zsIlwMQ539.jpg

第一步的頭文件就是給這里提供支持的。使用這種方式需要安裝額外的庫,網上說需要安裝libi2c-dev,我沒驗證,請知道的指點一二。我這里安裝了i2c-tools工具,并且下載了i2c-tools的源碼并編譯安裝過,所以庫和頭文件都有了,現在也搞不清是哪一步操作安裝的了。

Linux官方文檔是推薦這種方式的,smbus提供了下面幾個函數。

poYBAGQbsySARwjlAAKhvI_5U4Q681.jpg

5、編譯

使用smbus編譯需要額外的參數-Llib和-li2c,否則提示找不到smbus提供的函數。我用了makefile方便編譯,當然使用gcc直接編也可以。

pYYBAGQbsyWASt3uAAAqnvtq21A305.jpg

其他:

i2c相關的頭文件在/usr/include/linux下

pYYBAGQbsyaAObZyAABZIkPIcAw552.jpg

smbus相關的頭文件在/usr/local/include/i2c下

poYBAGQbsyeAZprZAABWAIDgczA716.jpg

tips:學習如何使用Linux最好的資料應該是Documentation,至少從spi和i2c的應用開發角度看是這樣,再結合man手冊,很多問題都能解決。網上搜索的東西太亂太雜,作為輔助手段還行。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11509

    瀏覽量

    213734
  • 總線
    +關注

    關注

    10

    文章

    2959

    瀏覽量

    89732
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1541

    瀏覽量

    127796
  • SMBus
    +關注

    關注

    1

    文章

    124

    瀏覽量

    22630
  • 樹莓派
    +關注

    關注

    121

    文章

    2003

    瀏覽量

    107438
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    I2CSMBus之間的技術差異

    所制訂的先進組態與電源管理接口(AdvancedConfiguration& Power Interface;ACPI)規范中成為基礎的管理訊息傳遞接口、控制傳遞接口。 雖然I2CSMBus
    發表于 11-21 19:49

    如何使I2C主機成為SMBus主機?

    你好,我正在努力使I2C成為SMBUS的主人。我面臨以下問題1。SMBus奴隸的刪除插入使得S I2C接口被卡住。-原因-在ISR I2C
    發表于 09-19 07:57

    SMBusI2C有什么差別?

    系統管理總線(SMBus)是一個兩線接口。通過它,各設備之間以及設備與系統的其他部分之間可以互相通信。它基于I2C操作原理。SMBus為系統
    發表于 03-20 09:01

    基于嵌入式Linux演示I2C設備調試

      I2C是嵌入式設備最為常用的接口之一,常用于如下面這些應用場景,因此本文就基于嵌入式Linux演示在User Space進行I2C設備調
    發表于 09-18 15:21 ?3次下載

    Linux設備驅動開發詳解》第15章、LinuxI2C核心、總線與設備驅動

    Linux設備驅動開發詳解》第15章、LinuxI2C核心、總線與設備驅動
    發表于 10-27 11:19 ?8次下載
    《<b class='flag-5'>Linux</b><b class='flag-5'>設備</b>驅動開發詳解》第15章、<b class='flag-5'>Linux</b>的<b class='flag-5'>I2C</b>核心、總線與<b class='flag-5'>設備</b>驅動

    MSP430硬件I2C如何實現SMBus

    該應用報告描述了使用MSP430硬件I2C外圍設備實現系統管理總線(SMBus)。
    發表于 05-08 09:34 ?18次下載
    MSP430硬件<b class='flag-5'>I2C</b>如何實現<b class='flag-5'>SMBus</b>

    基于嵌入式Linux下的I2C設備驅動的總體思路與框架設計

    由于I2C總線的通用性,Linux作為一款優秀的嵌入式操作系統,也必須要對其要有很好的支持。在Linux內核源碼中對I2C總線的驅動是基于總線設備
    發表于 08-20 09:04 ?3931次閱讀
    基于嵌入式<b class='flag-5'>Linux</b>下的<b class='flag-5'>I2C</b><b class='flag-5'>設備</b>驅動的總體思路與框架設計

    linux自帶i2c工具使用

    I2C總線被全球超過50個公司的1000+個ICs所使用,已然是一個世界標準.另外,I2C總線與多種不同的控制總線是兼容的,比如SMBus(系統管理總線),PMBus(電源管理總線),
    發表于 05-13 09:23 ?4152次閱讀

    I2C/SMBus地址轉換器

    I2C/SMBus地址轉換器
    發表于 04-20 10:44 ?5次下載
    <b class='flag-5'>I2C</b>/<b class='flag-5'>SMBus</b>地址轉換器

    LTC4316:單I2C/SMBus地址轉換器數據表

    LTC4316:單I2C/SMBus地址轉換器數據表
    發表于 05-20 16:57 ?1次下載
    LTC4316:單<b class='flag-5'>I2C</b>/<b class='flag-5'>SMBus</b>地址轉換器數據表

    LTC4318:雙I2C/SMBus地址轉換器數據表

    LTC4318:雙I2C/SMBus地址轉換器數據表
    發表于 05-21 09:34 ?9次下載
    LTC4318:雙<b class='flag-5'>I2C</b>/<b class='flag-5'>SMBus</b>地址轉換器數據表

    LTC1694-1:SMBus/I2C加速器數據表

    LTC1694-1:SMBus/I2C加速器數據表
    發表于 05-25 13:16 ?1次下載
    LTC1694-1:<b class='flag-5'>SMBus</b>/<b class='flag-5'>I2C</b>加速器數據表

    I2C通信協議:了解I2C Primer、 PMBus和SMBus

    I2C Primer的基本特性和標準,并重點說明在通信實現過程中如何正確使用該協議。從I2C的基本原理出發,我們將介紹其變體子集——系統管理總線(SMBus)和電源管理總線(PMBus)——的可用性及二者的區別。這三種協議各有專
    的頭像 發表于 06-15 15:29 ?7523次閱讀
    <b class='flag-5'>I2C</b>通信協議:了解<b class='flag-5'>I2C</b> Primer、 PMBus和<b class='flag-5'>SMBus</b>

    I2C控制器驅動介紹

    控制器驅動 I2C 總線驅動重點是 I2C 適配器驅動,這里要用到兩個重要的數據結構:i2c_adapter 和 i2c_algorithm
    的頭像 發表于 07-22 15:38 ?1967次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>控制</b>器驅動介紹

    I2C子系統SW Architecture

    適配器(控制器)驅動,這里用到兩個重要的數據結構:i2c_adapter 和 i2c_algorithm。其中,Linux 內核將 SOC 的 I
    的頭像 發表于 07-22 16:01 ?1230次閱讀
    <b class='flag-5'>I2C</b>子系統SW Architecture
    主站蜘蛛池模板: 片免费观看在线看 | 婷婷五月在线视频 | 欧美中出在线 | www.亚洲一区 | 99色亚洲| 亚洲黄站 | 欧美作爱福利免费观看视频 | 四虎影库网址 | 免费视频亚洲 | 国产精品久久久久久久免费大片 | freee性欧美 freesexvideo性2 | 性猛交╳xxx乱大交 性免费视频 | 久久久久久91精品色婷婷 | 免播放器av少妇影院 | 躁天天躁中文字幕在线 | 一区二区不卡在线观看 | 欧美日韩视频综合一区无弹窗 | 婷婷久久综合九色综合九七 | 四虎影院在线视频 | 欧美日韩性大片 | 色久天| 日本全黄视频 | 色婷婷国产 | 久久精品最新免费国产成人 | 午夜精品视频5000 | 成人国产精品2021 | 成 人色 网 站999 | 国内精品一级毛片免费看 | 色狠狠狠狠综合影视 | 在线视频这里只有精品 | 亚洲视频精品 | 欧美在线视频二区 | 护士一级aaaaaa毛片 | 色综合天天 | 久久亚洲国产成人精品性色 | 免费一级毛片 | 国产成人综合亚洲怡春院 | 老外一级黄色片 | 日本黄色片在线观看 | 天天干天天综合 | 国产一区二区精品 |