chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

標(biāo)準(zhǔn)庫函數(shù)與基于HAL庫函數(shù)的說明

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-25 16:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開始學(xué)習(xí)51的時候有的人會直接選擇進(jìn)行對單片機寄存器進(jìn)行操作,可以很好的理解單片機的工作原理,對于代碼的編寫也會后很好的理解,但是在stm32的時候操作寄存器就不太行了,因為stm32的寄存器是51的數(shù)十倍,如此多的寄存器根本無法全部記憶,開發(fā)時需要經(jīng)常的翻查芯片的數(shù)據(jù)手冊,此時直接操作寄存器就變得非常的費力了。這是我們就有了其他的操作方式,來簡化我們的工作。

一、標(biāo)準(zhǔn)庫

STM32有非常多的寄存器,導(dǎo)致了開發(fā)困難,所以為此ST公司就為每款芯片都編寫了一份庫文件,也就是工程文件里stm32F1xx……之類的。在這些 .c .h文件中,包括一些常用量的宏定義,把一些外設(shè)也通過結(jié)構(gòu)體變量封裝起來,如GPIO口時鐘等。所以我們只需要配置結(jié)構(gòu)體變量成員就可以修改外設(shè)的配置寄存器,從而選擇不同的功能。也是目前最多人使用的方式,也是學(xué)習(xí)STM32接觸最多的一種開發(fā)方式。

二、HAL庫

HAL庫是ST公司目前主力推的開發(fā)方式,全稱就是Hardware Abstraction Layer(抽象印象層)。庫如其名,很抽象,一眼看上去不太容易知道他的作用是什么。它的出現(xiàn)比標(biāo)準(zhǔn)庫要晚,但其實和標(biāo)準(zhǔn)庫一樣,都是為了節(jié)省程序開發(fā)的時期,而且HAL庫尤其的有效,如果說標(biāo)準(zhǔn)庫把實現(xiàn)功能需要配置的寄存器集成了,那么HAL庫的一些函數(shù)甚至可以做到某些特定功能的集成。也就是說,同樣的功能,標(biāo)準(zhǔn)庫可能要用幾句話,HAL庫只需用一句話就夠了。并且HAL庫也很好的解決了程序移植的問題,不同型號的stm32芯片它的標(biāo)準(zhǔn)庫是不一樣的,但使用HAL庫,只要使用的是相通的外設(shè),程序基本可以完全復(fù)制粘貼,注意是相通外設(shè),意思也就是不能無中生有。而且使用ST公司研發(fā)的STMcube軟件,可以通過圖形化的配置功能,直接生成整個使用HAL庫的工程文件,可以說是方便至極。

三、庫函數(shù)與HAL庫對比

1.串口通信實驗庫函數(shù)部分代碼

HAL函數(shù)代碼

2.庫函數(shù)與HAL庫比較庫函數(shù)配置好串口以后,當(dāng)串口接收到數(shù)據(jù)再發(fā)送給上位機時需要循環(huán)發(fā)送,但是HAL庫就直接調(diào)用HAL_UART_Transmit函數(shù)就能直接將串口的數(shù)據(jù)發(fā)給上位機。庫函數(shù)不免比HAL更加的麻煩。庫函數(shù)的串口通信函數(shù)只適用于STM32F1系列,對于其他系列的就不能通用了;但是對于HAL庫來說,只要外設(shè)相同,基本上能夠很容易的移植。可以說HAL庫就是用來取代之前的標(biāo)準(zhǔn)外設(shè)庫的。

總結(jié)

相比標(biāo)準(zhǔn)外設(shè)庫,STM32Cube HAL庫表現(xiàn)出更高的抽象整合水平,HAL API集中關(guān)注各外設(shè)的公共函數(shù)功能,這樣便于定義一套通用的用戶友好的API函數(shù)接口,從而可以輕松實現(xiàn)從一個STM32產(chǎn)品移植到另一個不同的STM32系列產(chǎn)品。對于我們這種水平的新手而言,HAL更加的友好,可以降低我們開發(fā)的門檻,但是如果想要更好的理解代碼實現(xiàn)的原理以及對寄存器的調(diào)用原理,標(biāo)準(zhǔn)庫更好的理解,可能相對較難,但是理解代碼的實現(xiàn)也是我們必須的。

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

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67568
  • 應(yīng)用軟件
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    在ADS編譯器中,用標(biāo)準(zhǔn)的C庫函數(shù)printf()需要哪些設(shè)置呢?

    在ADS編譯器中,用標(biāo)準(zhǔn)的C庫函數(shù)printf()需要哪些設(shè)置呢?又在哪兒可以看到printf()輸出的信息呢?
    發(fā)表于 12-23 07:32

    請問CW32微控制器是否提供軟件開發(fā)工具和庫函數(shù)支持?

    CW32微控制器是否提供軟件開發(fā)工具和庫函數(shù)支持?
    發(fā)表于 12-16 08:11

    labview調(diào)用pylon庫函數(shù)失敗

    在labview中去調(diào)用pylon庫函數(shù)。labview2018(32位),pylon(202506),ni vas,ni vdm均安裝。dll文件為runtime文件下win32
    發(fā)表于 12-11 13:20

    微庫與標(biāo)準(zhǔn)C庫的區(qū)別

    主要的差異: 1.代碼(數(shù)據(jù))量更?。▽Ρ壬蠄D)。 2.缺少一些不常用標(biāo)準(zhǔn)庫函數(shù),比如:文件 I/O 的庫函數(shù)。 3.微庫最大程度優(yōu)化代碼量,可能會導(dǎo)致有些庫代碼運行速度更慢。 4.可用于RTOS這類
    發(fā)表于 12-09 07:49

    LUA例程-常用的回調(diào)函數(shù)使用說明

    詳細(xì)說明LUA腳本函數(shù)功能和對應(yīng)的應(yīng)用實例。對于LUA腳本編程有很大的幫助和提高技能。
    發(fā)表于 11-24 16:43 ?0次下載

    單片機啟動&庫函數(shù)的構(gòu)成

    文件中找到那個叫SystemInit的東西,這是個函數(shù)名字,一般來講都可以在廠商提供的庫函數(shù)中找到,cw32的在下面這個圖的文件里 5.在執(zhí)行完SystemInit函數(shù)的這三行代碼之后,單片機
    發(fā)表于 11-18 08:15

    深度剖析Nios II 處理器的硬件抽象層

    )與ANSI C標(biāo)準(zhǔn)庫綜合在一起,可使用類似C語言的庫函數(shù)來訪問硬件設(shè)備或文件,如printf()、fopen()、fwrite()等函數(shù)。軟件工程師可非常方便的使用這些函數(shù)來與底層硬
    的頭像 發(fā)表于 10-31 15:25 ?5010次閱讀
    深度剖析Nios II 處理器的硬件抽象層

    在rtthread的main函數(shù)里用HAL_Delay函數(shù)不起作用是哪里的問題?

    在rtthread的main函數(shù)里用HAL_Delay函數(shù)無效,我設(shè)置延時500ms打印一次,但是實際上,一秒打印了幾百次,很顯然是HAL_Delay出現(xiàn)了問題。用RT_thread_
    發(fā)表于 09-15 07:53

    詳解hal_entry入口函數(shù)

    當(dāng)使用RTOS時,程序從main函數(shù)開始進(jìn)行線程調(diào)度;當(dāng)沒有使用RTOS時,C語言程序的入口函數(shù)main函數(shù)調(diào)用了hal_entry函數(shù)。由
    的頭像 發(fā)表于 07-25 15:34 ?2026次閱讀

    求CS32A010K8V7的庫函數(shù)使用教程

    請問有CS32A010K8V7的庫函數(shù)使用教程嗎,官網(wǎng)的庫函數(shù)自帶的文字說明感覺不是很看得明白呢
    發(fā)表于 07-18 23:20

    自己寫庫:構(gòu)建庫函數(shù)雛形

    實際上,構(gòu)建固件庫是一件費時費力的事情,并且它對開發(fā)者對芯片的熟悉程度有一定的要求。甚至,當(dāng)一個固件庫的封裝程度很高時,想要閱讀并理解該固件庫的底層代碼也會變成一件有較高難度的事情。瑞薩RA系列單片機所使用的官方FSP庫便是這樣的一種封裝程度很高的固件庫。所幸的是,F(xiàn)SP庫的意義在于為開發(fā)者封裝硬件底層,因此一般而言,F(xiàn)SP庫是帶來方便的,開發(fā)者只需學(xué)會如何使用FSP庫即可,而不用深入到FSP庫的底層細(xì)節(jié)。
    的頭像 發(fā)表于 06-19 11:19 ?1172次閱讀
    自己寫庫:構(gòu)建<b class='flag-5'>庫函數(shù)</b>雛形

    MSP430常用內(nèi)聯(lián)函數(shù)說明

    電子發(fā)燒友網(wǎng)站提供《MSP430常用內(nèi)聯(lián)函數(shù)說明.docx》資料免費下載
    發(fā)表于 06-05 17:20 ?0次下載

    STM32的幾種開發(fā)方式,你都知道嗎?(可下載)

    經(jīng)常有人會問,你們 STM32 編程是用庫函數(shù) 還是用寄存器的...會說庫函數(shù)方便,容 易,都用庫函數(shù)...等等這樣的問題,今天我們就來 dis 一下這幾種編程方式,STM32 編程 目前常見的幾種
    發(fā)表于 04-03 11:24 ?0次下載

    SPC560B無法使用sprintf vsnprintf等c庫函數(shù)是怎么回事?

    SPC560B無法使用sprintf vsnprintf等c庫函數(shù)
    發(fā)表于 03-14 12:09