99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

STM32的HAL與LL庫(kù)能共同使用(混用)嗎?

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-28 16:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這是一位讀者問(wèn)的問(wèn)題,我覺(jué)得很多人應(yīng)該都有這種疑惑,所以特地寫(xiě)篇文章分享給大家。

一、標(biāo)準(zhǔn)外設(shè)庫(kù)停更了

很多學(xué)習(xí)STM32的朋友都比較依賴(lài)之前的標(biāo)準(zhǔn)外設(shè)庫(kù)(StdPeriph_Lib),我想告訴大家一個(gè)事實(shí),那就是標(biāo)準(zhǔn)外設(shè)庫(kù)已經(jīng)停更很久了。

支持標(biāo)準(zhǔn)外設(shè)庫(kù)的STM32,只有相對(duì)較老的系列:F0、 F1、F2、F3、F4、L1.

我特地看了下,STM32標(biāo)準(zhǔn)外設(shè)庫(kù)最后一次更新時(shí)間是2016年11月的F4系列。

標(biāo)準(zhǔn)外設(shè)庫(kù)地址:

https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html

這后面出來(lái)的L0、 L4、 L5、 F7、 H7、 G0、 G4等都沒(méi)有標(biāo)準(zhǔn)外設(shè)庫(kù)了。

所以,使用STM32CubeHAL將成為今后的的主流。這里就出來(lái)了一個(gè)問(wèn)題:該使用HAL,還是LL開(kāi)發(fā)呢?

二者能共同共同開(kāi)發(fā)嗎?

拓展文章:

關(guān)于STM32的四類(lèi)嵌入式軟件庫(kù)

STM32Cube LL能高效的原因


二、HAL和LL庫(kù)能共同使用嗎?

這個(gè)問(wèn)題的答案是:不建議共同使用。

當(dāng)然,這個(gè)問(wèn)題還要分情況:相同外設(shè)和不同外設(shè)之間共同使用HAL和LL庫(kù)。

1.不同外設(shè)混用HAL和LL庫(kù)

這里說(shuō)的不同外設(shè)混用HAL和LL庫(kù)針對(duì)的不同外設(shè)。比如:UART使用HAL庫(kù),SPI使用LL庫(kù)。

這種情況下,一般來(lái)說(shuō):沒(méi)問(wèn)題。

因?yàn)楣俜讲还苁菑馁Y料,還是從STM32CubeMX工具配置都沒(méi)有反對(duì)這種做法。

這雖然沒(méi)有明確說(shuō)不允許這樣操作,但實(shí)際項(xiàng)目不建議這種方式。

至于原因,相信不用我說(shuō),有項(xiàng)目經(jīng)驗(yàn)的朋友都明白。這樣做不利于代碼移植,管理等工作。

2.相同外設(shè)混用HAL和LL庫(kù)

這里才是本文重點(diǎn),這種情況,官方其實(shí)也是建議:不允許。

這樣混用,會(huì)存在一系列問(wèn)題:底層沖突、結(jié)構(gòu)混亂、管理不方便等。

LL庫(kù)驅(qū)動(dòng)獨(dú)立,HAL包含驅(qū)動(dòng)包

拿STM32F4的UART傳輸函數(shù)來(lái)說(shuō),LL庫(kù)的位于stm32f4xx_ll_usart.h:

而HAL定義于stm32f4xx_hal_uart.c:

從這里可以看得出來(lái),LL只需包含頭文件即可,HAL要包含bsp包。

假如使用LL庫(kù)的工程,想使用HAL庫(kù),需添加bsp包到工程。

HAL句柄

對(duì)于LL而言,使用HAL庫(kù),會(huì)多一個(gè)句柄,比如UART1:

UART_HandleTypeDef huart1;

如果LL庫(kù)的工程,直接調(diào)用HAL接口是不行的,缺少句柄。

中斷請(qǐng)求處理

HAL和LL的中斷請(qǐng)求IRQ方式其實(shí)是不一樣的,混用之后很容易出錯(cuò)。

這里簡(jiǎn)單舉例說(shuō)這些,深入理解底層的朋友應(yīng)該知道,還有許多地方也是不建議混用。

當(dāng)然,不是絕對(duì)的(不能混用),我想說(shuō):萬(wàn)不得已,慎用。

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

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364729
  • BSP
    BSP
    +關(guān)注

    關(guān)注

    1

    文章

    94

    瀏覽量

    26934
  • 外設(shè)
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于STM32 HAL庫(kù)與標(biāo)準(zhǔn)庫(kù)的esp8266接入機(jī)智云方案(二)

    在《基于STM32HAL庫(kù)與標(biāo)準(zhǔn)庫(kù)的esp8266接入機(jī)智云方案(一)》中,我們?cè)敿?xì)介紹了硬件連接和機(jī)智云客戶(hù)端的創(chuàng)建。本篇將重點(diǎn)講解如何下載代碼、分析下載的代碼,并直接使用這些代碼連接機(jī)智云。同時(shí)
    的頭像 發(fā)表于 05-28 18:02 ?467次閱讀
    基于<b class='flag-5'>STM32</b> <b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>與標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)</b>的esp8266接入機(jī)智云方案(二)

    STM32開(kāi)發(fā)入門(mén)進(jìn)階必備!《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》新書(shū)發(fā)布!

    近日,由華清遠(yuǎn)見(jiàn)教育科技集團(tuán)精心編撰的教育部高等學(xué)校電子信息類(lèi)專(zhuān)業(yè)教學(xué)指導(dǎo)委員會(huì)規(guī)劃教材、普通高等教育電子信息類(lèi)專(zhuān)業(yè)系列教材——《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)
    的頭像 發(fā)表于 04-03 14:54 ?723次閱讀
    <b class='flag-5'>STM32</b>開(kāi)發(fā)入門(mén)進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)開(kāi)發(fā)—基于<b class='flag-5'>STM32</b>CubeMX和<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>》新書(shū)發(fā)布!

    如何將HAL庫(kù)轉(zhuǎn)為LL庫(kù)?

    怎么將HAL庫(kù)轉(zhuǎn)為LL庫(kù)。
    發(fā)表于 03-10 06:08

    請(qǐng)問(wèn)STM32G431 flash和can為什么沒(méi)有LL庫(kù)?

    STM32G431 flash和can為什么沒(méi)有LL庫(kù)
    發(fā)表于 03-07 06:48

    STM32F1開(kāi)發(fā)指南

    這本書(shū)詳細(xì)講述了STM32HAL庫(kù)開(kāi)發(fā)的配置流程,非常詳細(xì)
    發(fā)表于 01-21 15:33 ?3次下載

    HAL庫(kù)在Arduino平臺(tái)上的使用

    HAL庫(kù)在Arduino平臺(tái)上的使用 Arduino平臺(tái)是一個(gè)開(kāi)源的電子原型平臺(tái),它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。Arduino平臺(tái)因其簡(jiǎn)單易用而受到廣泛歡迎
    的頭像 發(fā)表于 12-02 14:04 ?1614次閱讀

    HAL庫(kù)和標(biāo)準(zhǔn)庫(kù)的區(qū)別 HAL庫(kù)與CMSIS的關(guān)系

    在嵌入式系統(tǒng)開(kāi)發(fā)中,HAL(硬件抽象層)庫(kù)和標(biāo)準(zhǔn)庫(kù)是兩種常用的軟件庫(kù),它們?cè)诠δ芎褪褂脠?chǎng)景上有所不同。 1. 標(biāo)準(zhǔn)庫(kù) 標(biāo)準(zhǔn)
    的頭像 發(fā)表于 12-02 14:02 ?3240次閱讀

    HAL庫(kù)的函數(shù)調(diào)用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)庫(kù)STM32等微控制器中常用的庫(kù),它為開(kāi)發(fā)者提供了訪(fǎng)問(wèn)和控制硬件設(shè)備的接口。以下是一些常用的
    的頭像 發(fā)表于 12-02 14:01 ?1584次閱讀

    HAL庫(kù)STM32開(kāi)發(fā)中的重要性

    HAL庫(kù)(Hardware Abstraction Layer Library,硬件抽象層庫(kù))在STM32開(kāi)發(fā)中扮演著至關(guān)重要的角色。以下是HAL
    的頭像 發(fā)表于 12-02 13:35 ?1328次閱讀

    如何快速入門(mén)HAL庫(kù)編程 HAL庫(kù)與裸機(jī)編程的比較

    。 選擇開(kāi)發(fā)環(huán)境和工具 : 下載并安裝適用于目標(biāo)微控制器的IDE(如STM32CubeIDE)。 配置開(kāi)發(fā)環(huán)境,包括編譯器、調(diào)試器等。 學(xué)習(xí)HAL庫(kù)文檔和教程 : 閱讀官方HAL
    的頭像 發(fā)表于 12-02 11:39 ?1117次閱讀

    HAL庫(kù)在嵌入式系統(tǒng)中的應(yīng)用

    HAL庫(kù)(Hardware Abstraction Layer Library,硬件抽象層庫(kù))在嵌入式系統(tǒng)中扮演著至關(guān)重要的角色。以下是HAL庫(kù)
    的頭像 發(fā)表于 12-02 11:32 ?2072次閱讀

    ADS1299與STM32f407通過(guò)SPI進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候,可以直接使用HAL庫(kù)中的HAL_SPI_Receive函數(shù)進(jìn)行數(shù)據(jù)傳輸嗎?

    在與STM32f407通過(guò)SPI進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候,可以在使SPI之后,直接使用HAL庫(kù)中的HAL_SPI_Receive函數(shù)進(jìn)行數(shù)據(jù)傳
    發(fā)表于 11-13 08:29

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細(xì)講解+HAL庫(kù)

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細(xì)講解+HAL庫(kù)
    的頭像 發(fā)表于 08-21 16:31 ?5297次閱讀
    第12章-ADC采集電壓和顯示 基于<b class='flag-5'>STM32</b>的ADC—電壓采集(詳細(xì)講解+<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>)

    stm32H7 HAL庫(kù)中存在的bug

    stm32H7 hal 庫(kù)里面的以太網(wǎng)代碼,坑了魚(yú)鷹很多次(不知道最新版是否已經(jīng)修復(fù)了這些bug),這里分享一篇網(wǎng)上的文章,因?yàn)轸~(yú)鷹也遇到過(guò),靠它解決了其中一個(gè)編譯優(yōu)化問(wèn)題,在此感謝作者。不過(guò)hal
    的頭像 發(fā)表于 08-12 17:37 ?2277次閱讀

    課程上線(xiàn) | STM32單片機(jī)入門(mén)教程(1)基于HAL庫(kù)的多核心開(kāi)發(fā)(F1/F4/G0/U5)

    ?好消息!華清遠(yuǎn)見(jiàn)STM32入門(mén)視頻課程《基于HAL庫(kù)STM32多核心開(kāi)發(fā)》正式上線(xiàn),已更新90講,持續(xù)更新中,8月份將全部上線(xiàn)。課程優(yōu)勢(shì)真人出鏡,手把手教學(xué)一板玩轉(zhuǎn)
    的頭像 發(fā)表于 08-08 16:42 ?756次閱讀
    課程上線(xiàn) | <b class='flag-5'>STM32</b>單片機(jī)入門(mén)教程(1)基于<b class='flag-5'>HAL</b><b class='flag-5'>庫(kù)</b>的多核心開(kāi)發(fā)(F1/F4/G0/U5)