国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

    關注

    6076

    文章

    45494

    瀏覽量

    670267
  • 嵌入式
    +關注

    關注

    5198

    文章

    20442

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【瑞薩RA × Zephyr開發板評測】+模擬IIC實現OLED輸出(與硬件IIC輸出的失敗經驗)

    無需額外工具即可編寫/調試程序。此外,通過Arduino Uno和Pmod?接口,包括對微控制器所有引腳的標準和通孔訪問等,它具有很高的可擴展性。 按照上圖進行Oled接線,首先使用IIC硬件接口
    發表于 01-19 22:23

    RA MCU眾測寶典 | IIC之【RA2E1】IIC通信的OLED顯示

    “RAMCU眾測寶典”IIC專題上線啦!這次,瑞薩嵌入式小百科將和大家一起聚焦【瑞薩RA2E1】開發板,一步步玩轉IIC通信的OLED顯示。從IIC協議的核心原理、FSP中I2CMaster的
    的頭像 發表于 01-01 10:04 ?1803次閱讀
    RA MCU眾測寶典 | <b class='flag-5'>IIC</b>之【RA2E1】<b class='flag-5'>IIC</b>通信的OLED顯示

    智能雙卡設計實戰指南:硬件電路與軟件配置詳解!

    在智能雙卡設計中,硬件電路的可靠性與軟件配置的精準性直接決定雙卡功能的穩定性。本文基于實際項目經驗,詳細拆解硬件設計中SIM卡供電電路、時鐘信號匹配及卡槽復用設計的實現細節,并同步講解軟件層的初始化
    的頭像 發表于 12-16 15:13 ?425次閱讀
    智能雙卡設計實戰指南:<b class='flag-5'>硬件</b>電路與軟件<b class='flag-5'>配置</b>詳解!

    【瑞薩RA6E2】硬件IIC驅動九軸傳感器與OLED顯示

    IIC_Write(OLED_ADDR, OLED_CMD, 0xDA);// 設置COM硬件配置 IIC_Write(OLED_ADDR, OLED_CMD, 0x12);//
    發表于 11-27 02:18

    基于hbirdv2-sdk的iic 0.96寸lcd調試

    , 讀寫數據函數, lcd初始化, lcd顯示封裝函數 iic.c: 硬件iic接口相關的定義 iic.h: iic
    發表于 10-30 06:20

    iic中只設置了時鐘和數據引腳沒有配置那個端口,rtt是怎么知道在那個端口上進行iic通信的?

    用的5.2.0版本配置iic的時鐘和數據引腳沒有配置端口,系統是怎么判斷使用的那個端口的那個引腳開始了通信呢?在rt——thread中需要us的延時么?那個大佬解答一下啊,剛接觸這個東西,感謝感謝
    發表于 09-26 07:26

    硬件定時器如何配置固定頻率?

    需求是:以25.6kHz操作引腳電平,系統主頻為160MHZ,STM32F429 按照文檔里“HWTIMER 設備”開啟了硬件定時器,但只能配置時間,按時間換算我要的這個頻率為 39.0625us
    發表于 09-26 07:12

    【微五科技CF5010RBT60開發板試用體驗】硬件IIC點亮OLED小屏幕

    微五科技 CF5010RBT60 測評:硬件 IIC 驅動 OLED 的流暢體驗 作為一款基于高性能 RISC-V 內核 (CF5010RBT60, 160MHz) 的開發板,微五科技
    發表于 08-08 11:01

    硬件調試:JLink 驅動配置與調試技巧

    摘要: 本文深入探討了 JLink 調試器在嵌入式系統硬件調試中的應用,詳細闡述了 JLink 驅動配置的方法以及硬件調試技巧。本文以國科安芯的AS32系列MCU芯片為例,通過分析 JLink
    的頭像 發表于 06-12 23:20 ?1655次閱讀
    <b class='flag-5'>硬件</b>調試:JLink 驅動<b class='flag-5'>配置</b>與調試技巧

    ADL5308可以通過軟件和硬件配置的參數,配置的優先級是什么?

    你好,麻煩問一下ADL5308可以通過軟件和硬件配置的參數,配置的優先級是什么?有沒有更詳細的寄存器配置手冊,截距配置的步進是多少?
    發表于 06-10 06:39

    IIC接口的IIC_SCL和IIC_SDA引腳做普通GPIO,程序啟動不起來怎么解決?

    想用IIC接口的IIC_SCL和IIC_SDA引腳做普通GPIO,兩個引腳對應的是GPIO58和GPIO59,更改代碼將設置為普通GPIO引腳模式后,程序啟動不起來。問:這種情況如何解決,官方支持這種應用嗎?
    發表于 05-06 08:59

    ZYNQ FPGA的PS端IIC設備接口使用

    zynq系列中的FPGA,都會自帶兩個iic設備,我們直接調用其接口函數即可運用。使用xilinx官方提供的庫函數,開發起來方便快捷。
    的頭像 發表于 04-17 11:26 ?2134次閱讀
    ZYNQ FPGA的PS端<b class='flag-5'>IIC</b>設備接口使用

    巨霖科技IIC Shanghai 2025精彩回顧

    近日,全球半導體行業矚目的國際集成電路展覽會暨研討會(IIC Shanghai 2025)在上海金茂君悅大酒店盛大開幕。
    的頭像 發表于 03-28 11:27 ?1087次閱讀

    為什么IIC總線會難住這么多人?

    為什么 IIC 總線讓很多人頭疼?其實可以把它想象成一場復雜的 "設備對話游戲",新手容易在這些地方栽跟頭:
    的頭像 發表于 03-12 10:14 ?961次閱讀
    為什么<b class='flag-5'>IIC</b>總線會難住這么多人?

    STM32F407的兩個USB口能否分別實現讀卡器和讀U盤的功能以及硬件IIC讀寫AT24C02?

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