在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何配置硬件IIC

正點(diǎn)原子 ? 2022-03-31 15:36 ? 次閱讀

如何配置硬件IIC

IIC英文全稱:Inter Integrated Circuit,集成電路總線,是飛利浦公司在八十年代開發(fā)的一種串行、同步、半雙工總線。

IIC總線協(xié)議無非就是幾樣?xùn)|西:起始信號、停止信號、應(yīng)答信號、以及數(shù)據(jù)有效性。大家學(xué)習(xí)了正點(diǎn)原子的IIC實(shí)驗(yàn),應(yīng)該很了解IIC時(shí)序。正點(diǎn)原子使用的是軟件模擬IIC,也就是用IO口模擬出IIC時(shí)序去通信。使用硬件IIC,就可以不用管時(shí)序信號,配置好之后就可以產(chǎn)生時(shí)序。雖說ST的硬件IIC很雞肋,但是某些方面還是比軟件模擬IIC稍微強(qiáng)一點(diǎn)。



下面列出一個(gè)硬件IIC和軟件IIC的對比表


e11dde04-af85-11ec-82f6-dac502259ad0.png





軟件IIC整個(gè)流程很清晰,假如出了bug,你能很快找到問題,硬件IIC就需要?jiǎng)佑肈S100示波器去看波形,波形的查看教程可以參考以下推文

嵌入式工程師必備技能—如何使用示波器查看IIC波形》

https://mp.weixin.qq.com/s/lnSORSbXeNJe-QVwW0EVbg


其實(shí)很多時(shí)候是在管腳上考量使用軟件IIC。硬件IIC雖然被聽說吐槽過千百遍,但是有些人還是有興趣想使用STM32的IIC外設(shè)的,那么本文就教一下大家使用硬件IIC,側(cè)重于使用(這里使用的是F1 HAL庫)。


首先,先看HAL庫給IIC定義好的結(jié)構(gòu)體,這里主要講解IIC初始化結(jié)構(gòu)體

e12c108c-af85-11ec-82f6-dac502259ad0.png

ClockSpeedIIC的傳輸速率,主要看從機(jī),從機(jī)AT24C02是最大為400kHz,低于400kHz即可。

DutyCycleSCL線時(shí)鐘占空比,就是低電平與高電平的比值,沒有嚴(yán)格限制,選擇2:1或者16:9即可。

OwnAddress1:STM32的IIC設(shè)備的自身地址,掛載在IIC總線上的器件每一個(gè)都有自己唯一地址,作為主機(jī)也不例外。特別注意:這里地址的設(shè)置不要跟從機(jī)一樣即可。

AddressingMode地址的位數(shù)是使用7位還是10位,這要看從機(jī)了。對于AT24C02來說,直接使用7位。

DualAddressMode用來配置是否支持雙設(shè)備地址,沒有用到可以不配置。

OwnAddress2STM32的IIC設(shè)備的自身地址,是否有效取決于DualAddressMode成員的設(shè)置。

GeneralCallMode廣播呼叫模式,作為從機(jī)時(shí)使用,通常用不上。

NoStrethMode時(shí)鐘線延長,也是作為從機(jī)時(shí)使用的,通常用不上。




在IIC實(shí)驗(yàn)例程中,編寫hwiic_init如下:


e13b6938-af85-11ec-82f6-dac502259ad0.png

這里是調(diào)用HAL_I2C_Init函數(shù)對IIC進(jìn)行初始化,在IIC的初始化回調(diào)函數(shù)中就要使能I2C1時(shí)鐘以及對相關(guān)引腳進(jìn)行初始化,特別注意GPIO口的模式(復(fù)用開漏輸出),這部分代碼比較簡單就不列出來了。




初始化完成后,使用HAL庫提供的IIC發(fā)送和接收函數(shù),函數(shù)如下:

e147a9fa-af85-11ec-82f6-dac502259ad0.png

hi2cIIC的句柄結(jié)構(gòu)體地址。

DevAddress從機(jī)的設(shè)備地址,這里并不是通訊地址。

MemAddress要寫入的地址。

MemAddSize地址的長度。

pData要寫入的數(shù)據(jù)的地址。

Size寫入數(shù)據(jù)的個(gè)數(shù)

Timeout函數(shù)執(zhí)行的超時(shí)時(shí)間。




以往的AT24C02的寫操作函數(shù)和讀操作函數(shù),函數(shù)體內(nèi)一堆代碼,現(xiàn)在只是幾行代碼。

at24c02寫一字節(jié)函數(shù)代碼如下:

e1677b9a-af85-11ec-82f6-dac502259ad0.png

at24c02讀一字節(jié)函數(shù)代碼如下:

e1764a4e-af85-11ec-82f6-dac502259ad0.png

假如說直接用HAL_I2C_Mem_Write來編寫連續(xù)寫函數(shù),就有頁寫限制,也就是最多8字節(jié),當(dāng)你寫入的數(shù)據(jù)大于8字節(jié)時(shí),就會出現(xiàn)錯(cuò)誤了。


所以編寫at24c02的連續(xù)寫函數(shù)最好就是調(diào)用at24c02_write_one_byte這個(gè)函數(shù)接口。


最終可以比對一下相同數(shù)據(jù)量的傳輸下,軟件模擬IIC和硬件IIC的速度對比。


硬件IIC的配置使用還是挺簡單的,速度上面還是比模擬IIC快,假如說是驅(qū)動(dòng)OLED屏幕的話,可以試用一下硬件IIC提高一下刷新率,得到更好的顯示效果。

e18df0a4-af85-11ec-82f6-dac502259ad0.gif

END

e19b49a2-af85-11ec-82f6-dac502259ad0.gif

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6060

    文章

    44835

    瀏覽量

    645258
  • 嵌入式
    +關(guān)注

    關(guān)注

    5127

    文章

    19457

    瀏覽量

    313573
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32F407的兩個(gè)USB口能否分別實(shí)現(xiàn)讀卡器和讀U盤的功能以及硬件IIC讀寫AT24C02?

    需求如下: 1.OTS_FS(PA 11,PA12)實(shí)現(xiàn)TF卡的讀卡器功能, 2.OTS_HS(PB14,PB15)實(shí)現(xiàn)讀寫U盤功能 3.硬件IIC(PB8,PB9)讀寫AT24C02,硬件I
    發(fā)表于 03-11 06:23

    在APP FPGA 中通過IIC接口對DLPC910寄存器進(jìn)行配置遇到的兩個(gè)問題求解

    在APP FPGA 中通過IIC接口對DLPC910寄存器進(jìn)行配置,有兩個(gè)問題想要請教: 1、DLPC910被封裝成了FPGA,通過IIC改變它的寄存器的值,掉電后,該值會被保留還是又回到了初始
    發(fā)表于 02-25 06:47

    DLPC3479 IIC通訊異常的原因?

    電路是按照TI硬件方案自主設(shè)計(jì)的電路,但是沒有使用Cypress,直接用了一個(gè)FPGA通過IIC控制,上電后DLP3479的HOST_IRQ引腳正常拉低,但是遇到如下問題: 1. 按照說明發(fā)送
    發(fā)表于 02-18 07:04

    基于瑞薩RA0E1開發(fā)板的IIC OLED測試

    基于前面關(guān)于瑞薩e2 studio開發(fā)軟件的使用,以及工程測試基礎(chǔ),本文進(jìn)一步探索實(shí)現(xiàn)硬件IIC OLED的文字和圖片顯示。
    的頭像 發(fā)表于 02-13 13:36 ?513次閱讀
    基于瑞薩RA0E1開發(fā)板的<b class='flag-5'>IIC</b> OLED測試

    iic協(xié)議的硬件設(shè)計(jì)指南

    )和時(shí)鐘線(SCL)。SDA負(fù)責(zé)傳輸數(shù)據(jù),而SCL用于同步數(shù)據(jù)傳輸。總線上的所有設(shè)備都通過這兩條線連接。 SDA(數(shù)據(jù)線) :雙向數(shù)據(jù)線,用于傳輸數(shù)據(jù)。 SCL(時(shí)鐘線) :雙向時(shí)鐘線,用于同步數(shù)據(jù)傳輸。 2. 引腳配置 在設(shè)計(jì)I2C硬件時(shí),需要考慮以下引腳
    的頭像 發(fā)表于 02-05 11:34 ?983次閱讀

    PGA302在利用IIC進(jìn)行PGA配置時(shí)遇到的兩個(gè)問題求解答

    在利用IIC進(jìn)行PGA配置時(shí),遇到了兩個(gè)問題: 1、date sheet的8.3.15.1說為了使得IIC接口能夠訪問內(nèi)存而不是訪問測試區(qū)域,需要將micro interface control
    發(fā)表于 12-03 06:58

    LMK5B12204配置后無時(shí)鐘輸出怎么解決?

    使用LMK5B12204芯片按上面原理圖設(shè)計(jì)(OSC3 48M晶振沒有,實(shí)際使用的是74.25M),MCU配置硬件引腳及通過IIC寫入寄存器,配置后無法測量到時(shí)鐘輸出。 1.HW_
    發(fā)表于 11-13 06:17

    IIC信號線需要增加上拉電阻,是因?yàn)?b class='flag-5'>IIC的IO是什么

    IIC(Inter-Integrated Circuit,即集成電路總線)信號線需要增加上拉電阻,這主要是因?yàn)?b class='flag-5'>IIC的IO(輸入輸出)設(shè)計(jì)采用了開漏(Open-Drain)輸出方式。開漏輸出方式在
    的頭像 發(fā)表于 10-06 15:50 ?1786次閱讀

    請問TAS5760L怎么通過IIC進(jìn)行音量控制,需要配置哪些寄存器?

    TAS5760L: 怎么通過IIC進(jìn)行音量控制,需要配置哪些寄存器
    發(fā)表于 09-27 09:36

    iic通訊的ardunio的文件下載

    里面很多iic通訊的ardunio的文件
    發(fā)表于 07-05 10:55 ?4次下載

    下位機(jī)硬件選型與配置研究

    在工業(yè)自動(dòng)化、嵌入式系統(tǒng)以及物聯(lián)網(wǎng)等領(lǐng)域,下位機(jī)作為系統(tǒng)的執(zhí)行單元,其硬件的選型與配置直接關(guān)系到整個(gè)系統(tǒng)的性能、穩(wěn)定性和可靠性。因此,合理的下位機(jī)硬件選型與配置對于確保系統(tǒng)的高效運(yùn)行至
    的頭像 發(fā)表于 06-28 16:57 ?1003次閱讀

    ABB變頻器的硬件配置詳解

      ABB變頻器作為工業(yè)自動(dòng)化領(lǐng)域的核心設(shè)備之一,其硬件配置對于實(shí)現(xiàn)高效、穩(wěn)定的電機(jī)控制至關(guān)重要。本文將詳細(xì)介紹ABB變頻器的硬件配置,包括其主要組成部分、功能特點(diǎn)、以及各組件的選型與
    的頭像 發(fā)表于 06-19 15:31 ?1664次閱讀

    使用STM32F103的硬件IIC,出現(xiàn)BUSY去重新初始化IIC之后,為什么會每次卡在設(shè)備地址發(fā)送不出去?

    使用STM32F103的硬件IIC,查詢的方式,進(jìn)行通訊,出現(xiàn)BUSY之后,去重新初始化IIC之后,之后為什么會每次卡在設(shè)備地址發(fā)送不出去啊。求教,求教
    發(fā)表于 05-28 06:43

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案
    的頭像 發(fā)表于 05-24 00:56 ?866次閱讀
    機(jī)器視覺系統(tǒng)讀取二維碼-軟<b class='flag-5'>硬件</b><b class='flag-5'>配置</b>方案

    硬件IIC卡死在while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY));的原因?

    先謝謝各位,我用的是STM8S105C6T6,寫了一個(gè)硬件IIC程序,軟件仿真時(shí)候發(fā)現(xiàn)程序一直死在 while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY));不知道為什么,求賜教,謝謝
    發(fā)表于 05-17 08:02
    主站蜘蛛池模板: 精品手机在线视频 | 亚洲一区二区免费看 | 97影院理论片在线观看 | 色在线视频观看 | 久久99热国产这有精品 | 国产午夜精品久久久久免费视 | 亚洲国产情侣偷自在线二页 | 在线免费观看视频黄 | 午夜精品一区二区三区在线视 | 日韩欧美色图 | 免费a级毛片出奶水 | 作爱在线观看 | 一二三区在线视频 | 天天操bb | 毛片.com| xxxxxxxxx18免费视频| 色偷偷资源 | 手机看片日韩福利 | 黄视频网站免费观看 | 激情五月激情综合色区 | 五月婷婷丁香综合 | 天天草综合网 | 中文天堂资源在线www | 手机看片1024日韩 | 中文字幕va一区二区三区 | 黄色在线 | 四虎最新入口 | 欧美 亚洲 国产 精品有声 | 一级毛片免费不卡在线视频 | 久青草国产手机在线视频 | 色综合视频一区二区三区 | 99热最新网址 | 天天做天天爽爽快快 | 亚洲影视一区二区 | 69日本xxⅹxxxxx19| 另类激情网 | 国产大片黄在线看免费 | 亚洲韩国在线一卡二卡 | 看黄免费在线 | 性欧美极品另类 | 大又大又粗又爽女人毛片 |