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

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

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

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

應(yīng)用筆記 | 淺談STM32庫里的回調(diào)函數(shù)

STM32單片機(jī) ? 來源:未知 ? 2023-09-14 17:10 ? 次閱讀

wKgZomUCzxeAaQAcAAHUHXdxAL4057.gif

關(guān)鍵字:回調(diào)函數(shù),HAL庫

目錄預(yù)覽

1.回調(diào)函數(shù)

2.STM32固件庫里的回調(diào)函數(shù)

3.STM32庫函數(shù)里的回調(diào)機(jī)制及觸發(fā)事件

4.常見問題

01 回調(diào)函數(shù)

有人對STM32固件庫里的回調(diào)函數(shù)有些好奇甚至糾結(jié),這里簡單地介紹下,以供參考。其實(shí)從用法及功能上講他們并沒有什么特別的,跟其他函數(shù)一樣,也是實(shí)現(xiàn)特定功能的代碼段。一般來講,所謂回調(diào)函數(shù),泛指基于事件觸發(fā)而被調(diào)用執(zhí)行的函數(shù),簡單點(diǎn)說,就是條件滿足了就調(diào)用的函數(shù),往往會跟函數(shù)指針結(jié)合起來通過函數(shù)指針實(shí)現(xiàn)調(diào)用。

經(jīng)常會有人基于類似下面的代碼介紹回調(diào)函數(shù):

wKgZomUCzxeAeJQJAAE3ih5ygAI645.png

wKgZomUCzxeAcQ0qAACzLxsXWNI996.png

在上面代碼中,那四個有關(guān)加減乘除的函數(shù)可以看成回調(diào)函數(shù),具體何時被調(diào)用,根據(jù)函數(shù)Compute(float a,float b,float(*Action)(float a,float b))里的函數(shù)指針的賦值情況來定,被賦予哪個回調(diào)函數(shù)的地址就調(diào)用哪個回調(diào)函數(shù)。當(dāng)然,使用函數(shù)指針并不是回調(diào)函數(shù)的核心特征,因事件驅(qū)動而被調(diào)用才是其核心特征。

生活中我們有時會對某人說,回頭再談、回頭再聊。潛臺詞往往就是等時機(jī)成熟了、條件滿足了再來具體交涉。這里就充滿著濃濃的回調(diào)意味。

回調(diào)函數(shù)可以理解為事件響應(yīng)函數(shù)或者說事件驅(qū)動函數(shù)。即使相同的事件、基于不同的場景可能會有不同應(yīng)對處理,從軟件代碼角度講就對應(yīng)不同的回調(diào)函數(shù)代碼。

我們不妨看個生活中的例子。生活中有人中了六合彩了,針對這一事件,中獎人可能有下面諸多舉動之一【這里簡化下,多選一】。但這件事發(fā)生在不同人身上,右邊的選擇很可能不盡一樣。換言之,中獎了,到底會選擇右邊哪一項(xiàng)還得結(jié)合具體的人來定。

wKgZomUCzxeAFlJnAACj-D4y6D8586.png

圖1 中六合彩的可能后續(xù)行為

我們再切換到STM32的嵌入式開發(fā)中來,以UART接收完成事件為例。針對這一事件,不同的應(yīng)用場景的應(yīng)對處理往往也是五花八門、五彩繽紛。

wKgZomUCzxeAEWUJAACtWY4vIss183.png

圖2 UART接收完成后可能后續(xù)動作

顯然,特定的應(yīng)用場景對應(yīng)著特定的回調(diào)函數(shù),一般來講,沒法簡單地僅僅基于事件就擬定一段既能適用于各種場景而又富有針對性的代碼。

結(jié)合上面的描述,稍微小結(jié)下。回調(diào)函數(shù)除了具有基于事件的觸發(fā)而被調(diào)用執(zhí)行的特征外,還具有相同事件因應(yīng)不同應(yīng)用場景可能需要不同的回調(diào)函數(shù)之特征,即基于特定應(yīng)用場景的回調(diào)函數(shù)其內(nèi)容具有特定性。

02

STM32固件庫里的回調(diào)函數(shù)

說到這里,我們具體結(jié)合STM32外設(shè)固件庫里回調(diào)函數(shù)來聊聊。

首先,作為一個函數(shù)庫,除了個別初始化函數(shù)外,里面不存在現(xiàn)存的完整的回調(diào)函數(shù)。結(jié)合前面的介紹,我們知道回調(diào)函數(shù)需要結(jié)合具體場景而擬定,作為函數(shù)庫根本做不到這一點(diǎn),它沒法事先知曉發(fā)生某個事件時不同的應(yīng)用會需要采取怎樣的操作。

其次,STM32庫函數(shù)的確采用了回調(diào)機(jī)制,并基于可能的各種事件為STM32開發(fā)者預(yù)留了只有函數(shù)定義而無具體內(nèi)容的回調(diào)函數(shù),或者是只定義了一些基于各類事件的函數(shù)指針,具體的回調(diào)函數(shù)需要用戶完成并將函數(shù)地址賦給相應(yīng)的函數(shù)指針而被調(diào)用。簡單點(diǎn)說,函數(shù)庫給我們事先預(yù)留了眾多的回調(diào)函數(shù)接口

STM32固件庫里的回調(diào)函數(shù)采用了兩種調(diào)用方式:

第一種是legacy方式,傳統(tǒng)的回調(diào)方式,庫以weak方式定義了各種空的回調(diào)函數(shù),像下面這些。STM32庫里都給我們準(zhǔn)備好了。【下面是有關(guān)UART部分事件的弱回調(diào)函數(shù)體,內(nèi)容為空】

wKgZomUCzxeADzDJAANeplyjz2o647.png

圖3 UART傳輸事件相關(guān)弱回調(diào)函數(shù)定義

具體開發(fā)時,我們根據(jù)事件和應(yīng)用場景基于類似上面的weak函數(shù)進(jìn)行重寫,重寫時拿掉weak,庫里預(yù)留的弱定義函數(shù)盡量不用動它。比方像下面這些都是最終的用戶回調(diào)函數(shù)。

wKgZomUCzxiAT000AATeo_OfHWQ133.png

圖4 UART傳輸事件相關(guān)的用戶回調(diào)函數(shù)

另外一種就是指針方式,或稱注冊方式。即函數(shù)庫里事先基于各類事件定義好了各種回調(diào)函數(shù)指針,具體的回調(diào)函數(shù)由用戶基于不同事件和應(yīng)用需求撰寫,然后將函數(shù)地址賦給函數(shù)指針,這個動作我們稱之為回調(diào)函數(shù)進(jìn)行注冊,之后回調(diào)函數(shù)就可以通過函數(shù)指針而被適時調(diào)用。

比方下面是UART外設(shè)里定義的一些函數(shù)指針:【星號所指的是與UART傳輸完成事件有關(guān)的回調(diào)函數(shù)所用的指針】

wKgZomUCzxiAS8UPAAfoAb6dGr8950.png

圖5 UART傳輸事件相關(guān)的回調(diào)函數(shù)指針

當(dāng)我們將回調(diào)函數(shù)寫好后,將函數(shù)地址賦給函數(shù)指針即可在相應(yīng)事件發(fā)生時被調(diào)用。比方類似下面的操作代碼。紅星標(biāo)所指代碼就是在做回調(diào)函數(shù)的注冊。

wKgZomUCzxiAABYkAADrvcGtRLk282.png

圖6 UART傳輸完成事件用戶回調(diào)函數(shù)及注冊

給函數(shù)指針賦地址可以直接賦地址或通過調(diào)用庫函數(shù)xxx_RegisterCallback完成【見上圖星標(biāo)代碼】。

這種指針方式需要我們對C語言中的結(jié)構(gòu)體、函數(shù)指針有相應(yīng)的了解,庫只是給我們提供了相應(yīng)的函數(shù)指針,具體的用戶回調(diào)函數(shù)由用戶根據(jù)需要來編寫,將其地址賦給相應(yīng)的函數(shù)指針以供調(diào)用。

而前面介紹的傳統(tǒng)型回調(diào)函數(shù),庫則幫我們把可能涉及到的回調(diào)函數(shù)全部以弱定義的方式都準(zhǔn)備好了,我們按需針對性選用,去掉weak填空重寫。使用起來相對更直觀些,無需我們對函數(shù)指針有太多了解。

目前STM32庫回調(diào)機(jī)制中,作為用戶到底使用上面的哪種回調(diào)方式呢?在每個系列的固件庫的配置頭文件中有針對各個外設(shè)事件回調(diào)函數(shù)使用方式的選擇,比方以STM32F4系列為例,這里有個stm32f4xx_hal_conf.h的頭文件,我們可以看到基于各個外設(shè)事件回調(diào)函數(shù)使用方式選擇的宏。

wKgZomUCzxiAGgUlAAUt6fbPy1Q732.png

圖7 回調(diào)函數(shù)調(diào)用方式的選擇配置

若我們不對該頭文件的相應(yīng)外設(shè)事件的回調(diào)函數(shù)調(diào)用方式的宏定義做調(diào)整,則默認(rèn)傳統(tǒng)回調(diào)方式,即legacy方式,非指針方式。若將相應(yīng)的宏值改為1,則該外設(shè)事件相關(guān)回調(diào)函數(shù)采用指針注冊方式。

03 STM32庫函數(shù)里的回調(diào)機(jī)制及觸發(fā)事件

整體上講,STM32外設(shè)庫里的API函數(shù)大體由三部分組成,分別是:

初始化函數(shù)

啟動型執(zhí)行函數(shù)

回調(diào)函數(shù)【弱定義函數(shù)或回調(diào)函數(shù)指針,最終靠用戶具體完成編寫】

這樣的安排,讓整個工程代碼結(jié)構(gòu)比較清晰,可以讓人快速了解庫結(jié)構(gòu),同時現(xiàn)存的API函數(shù)大大減少開發(fā)工作量,預(yù)留的回調(diào)函數(shù)接口一方面給開發(fā)者提供了便利,另一方面讓用戶基于不同應(yīng)用場景自由組織代碼而又不破壞整個軟件架構(gòu)。

對于回調(diào)函數(shù),可以由哪些事件觸發(fā)呢?大致分三類,分別是外設(shè)初始化操作、外設(shè)處理完成【中斷】事件、外設(shè)出錯【中斷】事件。我們關(guān)注最多是外設(shè)處理完成中斷事件相關(guān)的回調(diào)函數(shù)。

wKgZomUCzxmAMpSLAAGwSBkNnWY201.png

圖8 回調(diào)函數(shù)觸發(fā)事件的分類

04 常見問題

4.1 STM32庫函數(shù)里的回調(diào)函數(shù)是什么,有何用?

回調(diào)函數(shù)終究乃用戶所編寫,是用戶基于特定事件和應(yīng)用需求而編寫的功能模塊,與其他函數(shù)并無本質(zhì)區(qū)別。形式上講,STM32庫預(yù)先為用戶做了回調(diào)函數(shù)的弱定義或基于事件的函數(shù)指針的定義。因基于特定條件發(fā)生后被調(diào)用執(zhí)行而被冠以回調(diào)稱號。

嚴(yán)格來講,庫函數(shù)里沒有完整的回調(diào)函數(shù),只有基于各類事件的弱定義的不具備實(shí)際功能的空回調(diào)函數(shù),或者是針對各類事件而定義的各種用于調(diào)用回調(diào)函數(shù)的函數(shù)指針。我們的程序監(jiān)測相應(yīng)條件或事件往往是有的放矢,當(dāng)相應(yīng)事件出現(xiàn)時我們需要做相應(yīng)的處理,這正是回調(diào)函數(shù)要實(shí)現(xiàn)的功能,也是其功用所在。

4.2 STM32工程里的回調(diào)函數(shù)與中斷函數(shù)有什么區(qū)別?

STM32外設(shè)庫里的回調(diào)函數(shù)的確多數(shù)時候跟中斷事件及中斷服務(wù)程序息息相關(guān),往往在中斷服務(wù)程序中基于特定事件調(diào)用相應(yīng)的用戶回調(diào)函數(shù)。很多時候,我們完全可以將用戶回調(diào)函數(shù)看成中斷函數(shù)的一個調(diào)用模塊或延伸。

一個中斷服務(wù)程序里可以因不同事件而調(diào)用不同的回調(diào)函數(shù),即一個中斷服務(wù)程序里可能包含多個不同的回調(diào)函數(shù)。比方,我們在定時器中斷服務(wù)程序里可以涉及多個事件及相應(yīng)的用戶回調(diào)函數(shù),定時器中斷服務(wù)程序可能涉及更新事件、不同通道的比較事件或捕獲事件,相應(yīng)的用戶回調(diào)函數(shù)往往因應(yīng)用場景而異。

當(dāng)然,回調(diào)函數(shù)的調(diào)用還可以是中斷事件以外的其他事件觸發(fā)調(diào)用,比方可以基于初始化操作來調(diào)用相應(yīng)初始化回調(diào)函數(shù)。當(dāng)然,在庫里對某個外設(shè)的初始化可能有些默認(rèn)操作,但這個默認(rèn)操作很難是放之四海而皆準(zhǔn)的操作,這時我們就得根據(jù)實(shí)際應(yīng)用針對性編寫初始化代碼,即初始化型回調(diào)函數(shù)。

4.3 STM32庫函數(shù)里的回調(diào)函數(shù)是否可以不用?

STM32庫函數(shù)里的回調(diào)機(jī)制是庫設(shè)計者為了便于軟件框架清晰、減少開發(fā)者工作量等因素事先準(zhǔn)備的函數(shù)聲明及接口,用戶使用時只需根據(jù)具體應(yīng)用編寫相關(guān)函數(shù)體。當(dāng)然,你如果不想理睬這些回調(diào)函數(shù)聲明及定義也是可以的,你根據(jù)具體應(yīng)用自行組織代碼完全可行。

4.4 STM32庫函數(shù)里似乎存在著類似半成品的庫回調(diào)函數(shù)?

STM32庫函數(shù)里的確準(zhǔn)備了一些包含用戶回調(diào)函數(shù)的由庫定義的回調(diào)函數(shù),是庫設(shè)計者基于各類特定事件而準(zhǔn)備的回調(diào)函數(shù),它會針對特定事件做一些基本而必要的操作,比方狀態(tài)的檢查、標(biāo)志監(jiān)測及清除,但它沒有辦法徹底寫完整,因?yàn)樗鼰o法知道該事件發(fā)生后用戶的真實(shí)需求是什么,該如何操作,所以它終究還是需要調(diào)用真正的用戶回調(diào)函數(shù)。這樣做的目的還是為了給開發(fā)者減少開發(fā)工作量、以及減少出錯等。

我們不妨具體看個實(shí)例。下面的回調(diào)函數(shù)采樣的指針注冊方式,我們看看UART的DMA傳輸完成中斷里傳輸完成的回調(diào)函數(shù)的調(diào)用過程。

首先,在UART的DMA啟動函數(shù)HAL_UART_Transmit_ DMA()里有這樣一部分內(nèi)容:

wKgZomUCzxmAenU3AALdRrAC7tY951.png

圖9 外設(shè)啟動運(yùn)行代碼中庫回調(diào)函數(shù)的賦值

庫里就DMA傳輸事件準(zhǔn)備了幾個回調(diào)函數(shù)【傳輸完成、半完成、出錯】,即上圖中紅線標(biāo)示出來的。其實(shí)這幾個回調(diào)函數(shù)還不算完整的用戶回調(diào)函數(shù),是庫定義的并會做一些在它看來用戶必定需要完成的一些操作,它事先幫助完成,之后才調(diào)用最終的戶回調(diào)函數(shù)。我們以傳輸完成事件為例來看看,上圖星號所標(biāo)的函數(shù)。

wKgZomUCzxmAfylfAAQP-ZU9bwQ322.png

圖10 庫回調(diào)函數(shù)進(jìn)一步調(diào)回用戶回調(diào)函數(shù)

在這個庫定義的UART_DMATransmitCplt()函數(shù)里,它對DMA的傳輸模式做了判斷,如果是Normal模式,就將UART的傳輸數(shù)據(jù)長度設(shè)置為0,禁止DMA后續(xù)傳輸功能,使能UART傳輸完成中斷的使能。然后才來調(diào)用用戶回調(diào)函數(shù)【上圖中箭頭所指】。如果DMA工作在循環(huán)模式,代碼進(jìn)到UART_DMATransmitCplt()函數(shù)后就直接調(diào)用最終的用戶回調(diào)函數(shù)。也就說這些庫定義的回調(diào)函數(shù)在用戶回調(diào)函數(shù)的基礎(chǔ)上做了些必要操作,用戶回調(diào)函數(shù)可以看成這類庫回調(diào)函數(shù)的子集。

4.5 基于STM32庫來組織用戶回調(diào)函數(shù)要注意什么?

前面提過了,用戶回調(diào)函數(shù)主要基于初始化事件或中斷事件而組織的代碼。那些中斷事件的回調(diào)函數(shù)的調(diào)用基本都是在中斷服務(wù)程序里發(fā)生的。所以,我們在編寫回調(diào)函數(shù)時要結(jié)合具體情況靈活地組織代碼。要考慮中斷優(yōu)先級、具體事件響應(yīng)的實(shí)時性等。具體點(diǎn)說,我們在組織回調(diào)函數(shù)時,要考慮是否一定要一股腦地全寫在中斷服務(wù)程序里,會不會影響別的中斷響應(yīng)。對于有些不緊急而又耗時的事件響應(yīng)代碼,可以考慮只在回調(diào)函數(shù)里設(shè)置相應(yīng)標(biāo)志,真正的處理代碼放到主循環(huán)去完成。

還提醒一點(diǎn),STM32庫設(shè)計者主動給我們準(zhǔn)備了弱定義回調(diào)函數(shù)或基于各個事件的回調(diào)函數(shù)指針,盡管很豐富了,但未必能包羅萬象,必要時我們可能還得根據(jù)具體情況來額外組織些類似回調(diào)函數(shù)的事件/中斷響應(yīng)代碼。

關(guān)于STM32 HAL庫里的回調(diào)函數(shù)就簡單介紹到這里,希望能幫到一些STM32開發(fā)者。

完整內(nèi)容請點(diǎn)擊“閱讀原文”下載原文檔。

wKgZomUCzxmARlaPAAOyOP2Y2vs804.png訂閱號

關(guān)注STM32

wKgZomUCzxmAEEnTAACDSIYrXK4469.jpg視頻

wKgZomUCzxmAZ1vaAAAfRB2s2NQ304.pngB站賬號

點(diǎn)擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記 | 淺談STM32庫里的回調(diào)函數(shù)

文章出處:【微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


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

    關(guān)注

    6044

    文章

    44628

    瀏覽量

    638993
  • STM32
    +關(guān)注

    關(guān)注

    2273

    文章

    10926

    瀏覽量

    357789

原文標(biāo)題:應(yīng)用筆記 | 淺談STM32庫里的回調(diào)函數(shù)

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CDK應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《CDK應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:17 ?0次下載
    CDK應(yīng)<b class='flag-5'>用筆記</b>

    定時器調(diào)函數(shù)能不能用ICACHE_FLASH_ATTR定義?

    非 OS SDK 在中斷處理函數(shù)中,請勿使用任何 ICACHE_FLASH_ATTR 定義的函數(shù)。 請問: 1、定時器和hw定時器的調(diào)函數(shù)
    發(fā)表于 07-22 06:33

    esp8266怎么找到調(diào)函數(shù)被調(diào)用的地方?

    esp8266里的程序怎么運(yùn)行? 在user_init里注冊了espconn_regist_sentcb,espconn_regist_recvcb這幾個調(diào)函數(shù),怎么找到這幾個
    發(fā)表于 07-10 08:24

    在HTTP的demo里面,調(diào)函數(shù)不執(zhí)行的原因?

    在HTTP的demo里面,我用下面這個函數(shù)注冊了一個調(diào)函數(shù),但是發(fā)現(xiàn)有時候正常執(zhí)行有時候不執(zhí)行,只是偶爾不執(zhí)行,大部分時間是正常的。有沒有人能提供一下原因可能的方向,謝謝!! es
    發(fā)表于 07-10 08:23

    請問stm32f4的dsp庫里面fir函數(shù)如何使用?

    請問在stm32f4 的dsp庫里面有好幾個關(guān)于fir的函數(shù),因?yàn)闆]有源碼,我也沒有什么關(guān)于這個dsp函數(shù)的介紹,所以看不懂這些函數(shù)怎么用呢
    發(fā)表于 05-17 08:07

    芯海通用 MCU應(yīng)用筆記 :在 IAR 及 MDK 開發(fā)環(huán)境下使用 printf 函數(shù)重定向移植差異指南

    本應(yīng)用筆記,旨在幫助客戶在使用不同 IDE(MDK Keil 或 IAR)時,對使用 printf 函數(shù)來打印輸出UART 串口信息時遇到的無法打印、打印亂碼等移植問題作出梳理,理清不同 IDE
    發(fā)表于 05-16 11:56

    CSU18MX86應(yīng)用筆記

    本應(yīng)用筆記旨在為用戶提供關(guān)于CSU18MX86的詳細(xì)信息和使用指南,幫助用戶快速開發(fā)基于CSU18MX86的應(yīng)用。*附件:CSU18MX86應(yīng)用筆記_V1.0.pdf
    發(fā)表于 05-16 10:21

    stm32中斷調(diào)函數(shù)改變的變量在while中不變怎么解決?

    關(guān)于stm32 中斷調(diào)函數(shù)改變的變量在while中不變問題
    發(fā)表于 04-26 07:44

    stm32cubemx生成rtos后中斷處理后執(zhí)行的調(diào)函數(shù)是否也有優(yōu)先級?

    如題:調(diào)函數(shù)是否也有優(yōu)先級,我發(fā)現(xiàn)我的調(diào)函數(shù)不能按照預(yù)想的來運(yùn)行.
    發(fā)表于 04-25 08:16

    在uCGUI的調(diào)函數(shù)里加了行代碼,stm32無法啟動怎么解決?

    我是一個初學(xué)者。最近在寫一個uCGUI上的小應(yīng)用的時候遇到了這樣的問題,我在MULTIEDIT控件的調(diào)函數(shù)里加了一行代碼,運(yùn)行我自己寫的一個用于計算的函數(shù),在沒有加這一行代碼的時候運(yùn)
    發(fā)表于 04-24 07:06

    STM32H750VBT6 ADC1,ADC2,ADC3,加DMA為什么ADC3調(diào)函數(shù)不能正常工作?

    STM32H750VBT6ADC1,ADC2,ADC3,加DMA為什么ADC3調(diào)函數(shù)不能正常工作 ADC1,ADC2
    發(fā)表于 03-29 07:23

    調(diào)函數(shù)(callback)是什么?調(diào)函數(shù)的實(shí)現(xiàn)方法

    調(diào)函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后被調(diào)用。
    發(fā)表于 03-12 11:46 ?3184次閱讀

    STM32cubeIDE PA0口外部中斷改變LED燈狀態(tài)時,GPIO翻轉(zhuǎn)函數(shù)放在外部中斷調(diào)函數(shù)中不被調(diào)用怎么解決?

    STM32cubeIDE PA0口外部中斷改變LED燈狀態(tài)時,GPIO翻轉(zhuǎn)函數(shù)放在外部中斷調(diào)函數(shù)中不被調(diào)用,放在EXTI0_IRQHand
    發(fā)表于 03-12 06:32

    函數(shù)指針與調(diào)函數(shù)的應(yīng)用實(shí)例

    通常我們說的指針變量是指向一個整型、字符型或數(shù)組等變量,而函數(shù)指針是指向函數(shù)函數(shù)指針可以像一般函數(shù)一樣,用于調(diào)用函數(shù)、傳遞參數(shù)。
    的頭像 發(fā)表于 03-07 11:13 ?442次閱讀
    <b class='flag-5'>函數(shù)</b>指針與<b class='flag-5'>回</b><b class='flag-5'>調(diào)</b><b class='flag-5'>函數(shù)</b>的應(yīng)用實(shí)例

    ??嵌入式中調(diào)函數(shù)的實(shí)現(xiàn)方法

    調(diào)函數(shù)的命名規(guī)范沒有固定的標(biāo)準(zhǔn),但是根據(jù)通用慣例和編碼規(guī)范,調(diào)函數(shù)的命名應(yīng)該能夠反映
    發(fā)表于 03-04 14:49 ?825次閱讀
    主站蜘蛛池模板: 国产精品久久久久久久久 | 天天看天天做 | 亚洲男人的天堂久久香蕉 | 日本一区二区免费看 | 亚洲视频1 | 成人国产激情福利久久精品 | 亚洲天堂第一页 | 国产福利乳摇在线播放 | 91寡妇天天综合久久影院 | 久久久99精品免费观看精品 | 国产伦精品一区二区三区免 | 深爱婷婷| 天天夜夜骑 | 国产一卡2卡3卡四卡精品网站 | 中文字幕三级 | 全亚洲最大的777io影院 | 精品亚洲综合在线第一区 | 国产三级香港三级人妇 | 小雪被撑暴黑人黑人与亚洲女人 | 日本边添边爱边摸边做边爱 | 香蕉视频啪啪 | 五月综合激情网 | 1024国产高清精品推荐 | 久久久久久久久女黄 | 一区二区三区视频网站 | 亚洲成人精品 | 韩国电影天堂 | 欧美性猛交xxxx黑人喷水 | 在线视频亚洲欧美 | 天天艹综合 | 亚洲插插| 午夜无码国产理论在线 | 涩涩97在线观看视频 | 四虎永久地址4hu紧急入口 | 永久手机看片福利盒子 | 国产成视频 | 精品伊人久久香线蕉 | 日韩特级| 美女被上视频 | 国产精品久久久久久一级毛片 | 公妇乱淫日本免费观看 |