色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何配置硬件IIC

正點原子 ? 2022-03-31 15:36 ? 次閱讀

如何配置硬件IIC

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

IIC總線協議無非就是幾樣東西:起始信號、停止信號、應答信號、以及數據有效性。大家學習了正點原子的IIC實驗,應該很了解IIC時序。正點原子使用的是軟件模擬IIC,也就是用IO口模擬出IIC時序去通信。使用硬件IIC,就可以不用管時序信號,配置好之后就可以產生時序。雖說ST的硬件IIC很雞肋,但是某些方面還是比軟件模擬IIC稍微強一點。



下面列出一個硬件IIC和軟件IIC的對比表


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





軟件IIC整個流程很清晰,假如出了bug,你能很快找到問題,硬件IIC就需要動用DS100示波器去看波形,波形的查看教程可以參考以下推文

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

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


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


首先,先看HAL庫給IIC定義好的結構體,這里主要講解IIC初始化結構體

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

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

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

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

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

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

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

GeneralCallMode廣播呼叫模式,作為從機時使用,通常用不上。

NoStrethMode時鐘線延長,也是作為從機時使用的,通常用不上。




在IIC實驗例程中,編寫hwiic_init如下:


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

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




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

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

hi2cIIC的句柄結構體地址。

DevAddress從機的設備地址,這里并不是通訊地址。

MemAddress要寫入的地址。

MemAddSize地址的長度。

pData要寫入的數據的地址。

Size寫入數據的個數

Timeout函數執行的超時時間。




以往的AT24C02的寫操作函數和讀操作函數,函數體內一堆代碼,現在只是幾行代碼。

at24c02寫一字節函數代碼如下:

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

at24c02讀一字節函數代碼如下:

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

假如說直接用HAL_I2C_Mem_Write來編寫連續寫函數,就有頁寫限制,也就是最多8字節,當你寫入的數據大于8字節時,就會出現錯誤了。


所以編寫at24c02的連續寫函數最好就是調用at24c02_write_one_byte這個函數接口。


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


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

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

END

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

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

    關注

    6035

    文章

    44554

    瀏覽量

    634702
  • 嵌入式
    +關注

    關注

    5082

    文章

    19109

    瀏覽量

    304836
收藏 人收藏

    評論

    相關推薦

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

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

    iic通訊的ardunio的文件下載

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

    下位機硬件選型與配置研究

    在工業自動化、嵌入式系統以及物聯網等領域,下位機作為系統的執行單元,其硬件的選型與配置直接關系到整個系統的性能、穩定性和可靠性。因此,合理的下位機硬件選型與配置對于確保系統的高效運行至
    的頭像 發表于 06-28 16:57 ?615次閱讀

    ABB變頻器的硬件配置詳解

      ABB變頻器作為工業自動化領域的核心設備之一,其硬件配置對于實現高效、穩定的電機控制至關重要。本文將詳細介紹ABB變頻器的硬件配置,包括其主要組成部分、功能特點、以及各組件的選型與
    的頭像 發表于 06-19 15:31 ?1104次閱讀

    使用STM32F103的硬件IIC,出現BUSY去重新初始化IIC之后,為什么會每次卡在設備地址發送不出去?

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

    STM8L051F3手冊里是否有IIC作為slave的IIC address?

    各位使用過STM8L051F3硬件IIC的朋友們,手冊里是否有IIC作為slave的IIC address,并沒有看到啊。請大家幫忙告知。謝謝!
    發表于 05-07 07:25

    stm32f103z系列硬件IIC從機不能用的原因?

    如題,我在STM32F103C8 48腳下寫的IIC PB6 PB7 硬件IIC從機可以使用, 把上面的程序改為STM32F103ZE 144腳下的寫的IIC PB6 PB7
    發表于 05-07 06:56

    請問STM32F429硬件IIC需要外圍上拉電阻嗎?

    如題,STM32F429使用IIC通信的時候,是否需要外加上拉電阻? 看過很多資料,都說是需要上拉電阻,讓人郁悶的是,這次設計硬件的時候,偏偏忘記了加,于是乎我進行了測試, //使能IO引腳
    發表于 04-24 06:35

    STM8L101F3U6TR的硬件IIC從機進不了中斷是為什么?

    開發stm8,一直都用的是stvd,但是發現很多例程到使用iar,就轉到iar開發。 現在項目上用到IIC從機的問題,也看了挺多人寫的硬件IIC從機程序,都運行無問題,于是自己也仿照著寫了從機程序
    發表于 04-09 06:25

    FPGA實現IIC協議的設計

    今天給大家帶來的是IIC通信,IIC協議應用非常廣泛,例如與MPU6050進行通信,配置OV5640攝像頭、驅動OLED屏幕等等,都需要使用到IIC協議,所以掌握它是非常必要的,廢話不
    的頭像 發表于 03-04 10:49 ?1247次閱讀
    FPGA實現<b class='flag-5'>IIC</b>協議的設計

    GD32 MCU碰到IIC總線卡死怎么辦?

    大家在使用MCU IIC通信時,若碰到設備復位或者總線干擾等情況,可能會導致IIC總線卡死,表現上總線上SDA或者SCL其中一根線為低電平,IIC總線一直處于busy狀態。此時若代碼上一直等待總線空閑,則可能導致軟件死機,為解決
    的頭像 發表于 02-24 09:46 ?3831次閱讀
    GD32 MCU碰到<b class='flag-5'>IIC</b>總線卡死怎么辦?

    請問一下TC275是否有完整的例程來使用mcHal庫為控制器配置IIC?

    先生請問一下 TC275 是否有完整的例程來使用 mcHal 庫為控制器配置 IIC?
    發表于 02-01 08:17

    請問如何使用Dave2配置XC2267M的IIC

    如何使用 Dave2 配置 XC2267M 的 IIC? 您CAN 為我提供特定的配置步驟? 請幫幫我,謝謝!
    發表于 01-31 07:54

    采集卡與顯卡:功能差異和硬件配置的不同

    采集卡與顯卡:功能差異和硬件配置的不同? 采集卡與顯卡在計算機硬件中擔當著不同的角色,每個都具有不同的功能和硬件配置。采集卡主要用于數據采集
    的頭像 發表于 01-09 14:41 ?2066次閱讀

    IIC總線的FPGA實現說明

    DE2_TV中,有關于寄存器的配置的部分,采用的方法是通過IIC的功能,這里對IIC總線的FPGA實現做個說明。
    的頭像 發表于 01-05 10:16 ?1052次閱讀
    <b class='flag-5'>IIC</b>總線的FPGA實現說明
    主站蜘蛛池模板: 精品精品国产自在现拍| 伊人久久综在合线亚洲| 欧美性色生活片天天看99顶级| 国语自产视频在线不卡| 国产AV无码熟妇人妻麻豆| 被黑人做的白浆直流| 97视频免费上传播放| 1234成人网| 最新国产亚洲亚洲精品视频| 在线成人精品国产区免费| 亚洲人成77777在线视频| 亚洲国产在线视频精品| 亚洲高清视频免费| 亚洲国产日韩欧美高清片a| 亚洲AV无码乱码A片无码蜜桃| 翁公咬着小娇乳H边走边欢A| 日韩欧美亚洲精品综合在线 | 香港成人社区| 色就色综合| 色偷偷888欧美精品久久久| 色偷偷7777www| 天天综合亚洲综合网站| 色婷婷五月综合中文字幕 | 国产人妻人伦精品A区| 国产精品XXXXX免费A片| 国产成人拍精品免费视频爱情岛| 高清国产一区| 国产区在线不卡视频观看| 好男人好资源视频高清| 九九久久精品| 蜜柚免费视频高清观看在线| 欧美午夜精品一区二区蜜桃| 日韩精品一区二区中文| 午夜勾魂曲| 亚洲综合日韩中文字幕v在线| 伊人最新网址| 99久久国产露脸精品国产吴梦梦| japonensis护士| 国产精品久久人妻互换毛片| 教室眠催白丝美女校花| 久青草国产观看在线视频|