FreeRTOS源碼詳解與應用開發—基於STM32
本書輔以大量的例程,全麵講解瞭Fr e eRTOS的原理以及源碼,主要內容包括任務管理和任 務調度、係統裁減和配置、時間管理、隊列、信號量、軟件定時器、事件標誌組、任務通知、低功耗 Ti ck l e s s模式、空閑任務以及內存管理等。同時,本書配有大量的圖例,對於想要深入學習RTOS 類係統原理的人來說是一個不錯的選擇。 本書配套資料包括視頻教程、文檔教程、各個例程的源碼及相關參考資料,所有資料均可在開 源電子網(網址為. openedv. c om)免費下載。 本書適閤那些想要學習Fr e eRTOS的初學者,也可作為高等院校計算機、電子技術、自動化、 嵌入式等相關專業的教材。
背景知識 近年來微處理器的性能呈爆炸式增長,尤其是在ARM公司發布瞭Co r t ex M 內核以後,全球很多大型半導體廠商都推齣瞭基於Co r t ex M內核的MCU。以ST (意法半導體)為例,先後推齣瞭STM32F1、 STM32F4、 STM32F7和近剛推齣的 STM32H7,其性能已經遠超曾經的ARM7,甚至已經超過瞭大多數的ARM9處理 器。強大的性能意味著復雜的功能、復雜的應用,隨著應用中所需功能的增多,裸機 開發越來越吃力,應用中各功能模塊的管理遇到瞭前所未有的挑戰。這時候,一個科 學的、閤理的模塊化管理方法顯得尤為重要,而這個正是操作係統的基本功能,即任 務管理。 提起操作係統,大多數人的反應應該是 Wi ndows、 L i nux、And r o i d和IOS 等這些常用的大型操作係統。很不幸的是,對於Co r t ex M這種級彆的MCU來講, 這些係統一個都用不瞭,它們有自己專用的操作係統,叫RTOS類操作係統。RTOS 是Re a lTimeOpe r a t i ngSys t em的縮寫,也就是實時操作係統。RTOS類操作係統 有很多,如μC/OSI I / I I I、 RTX、 RT Thr e ad、 Fr e eRTOS等。那為何本書選擇Fr e eRTOS呢? 主要的原因就是Fr e eRTOS免費,而且全球占有量很大,很多第三方 組件廠商都選擇Fr e eRTOS作為默認操作係統,比如STM32官方庫、 TouchGFX圖 形界麵、各種 Wi F i和藍牙的協議棧等,因此本書選擇瞭Fr e eRTOS。係統的運行需 要一個平颱,本書選取ALIENTEK推齣的STM32F429阿波羅開發闆,本書所涉及 的例程都是基於此款開發闆編寫的;如果讀者使用其他類型的開發闆,則隻需要對例 程稍做修改即可。 本書特點 ? 由簡入深,從基本的API函數使用方法講起,讓讀者對於Fr e eRTOS先有 一個基本的概念,後續章節再對Fr e eRTOS的各功能模塊進行詳細講解。 ? 對Fr e eRTOS中重要的功能模塊,比如信號量、隊列、列錶和列錶項等,進行 瞭源碼級的剖析,對其中重要的API函數源碼做瞭詳細分析。 ? 針對Fr e eRTOS的移植過程,筆者每操作一步都記錄下來編寫進本書,盡可 能保證移植過程閤理、無誤,盡量確保讀者通過參考本書的移植過程可以將Fr e eRTOS移植到任何Fr e eRTOS所支持的MCU上。 ? 對於本書中晦澀難懂的原理性知識,我們都會配有相應的圖形,采用圖文結 閤的方式加深對原理的理解。所有圖形都采用Vi s i o軟件進行繪製,保證圖 形質量,圖形配色閤理、大氣。 ? 操作係統是運行在處理器上的,因此,肯定會涉及處理器架構方麵的知識,本 書中涉及的地方都會標記齣可以參考的書籍以及章節,方便想要深入瞭解的 讀者去閱讀參考。 ? 基本上每章都有相應的練習和使用例程,通過理論加實踐的方式來加強對 Fr e eRTOS操作係統的掌握。 ? 考慮到不同讀者的C語言使用水平不同,本書涉及的例程中都沒有使用復雜 的C語言語法,基本都是常用的語法。 使用對象 ? 使用Fr e eROTS操作係統的研發人員,或者畢業設計等需要使用Fr e eRTOS 的學生。 ? 對Fr e eRTOS感興趣、想要深入瞭解其運行原理的愛好者。 ? 學習過其他RTOS類操作係統、想要再掌握一種RTOS類操作係統的愛 好者。 軟硬件平颱 使用Fr e eRTOS肯定避免不瞭編寫、編譯程序,程序編譯完成以後肯定也需要 下載到硬件上去運行。編寫程序的IDE和運行程序的硬件平颱有很多種,本書使用 的軟硬件平颱如下: 硬件平颱: ALIENTEK推齣的STM32F429阿波羅開發闆。擁有這款開發闆的 讀者可以直接下載本書中的所有例程,無須做任何修改。ALIENTEK有多款 STM32開發闆,包括STM32F103、 STM32F407、 STM32F429和STM32F767,本書 所有例程都有這些開發闆的對應版本,擁有這些開發闆的讀者可以直接下載對應的 例程。使用其他開發闆的讀者也不用著急,本書例程操作的都是STM32基本的 外設,比如串口、定時器、 I /O等,隻須稍做修改就可以將例程在自己的開發闆上運行 起來。 IDE開發工具: Ke i l公司的MDK5. 22。 Fr e eRTOS版本: V9. 0. 0版本的Fr e eRTOS。 STM32庫: ST新推齣的HAL庫,版本為V1. 4. 2。 參考資料 本書編寫過程中參考過很多資料,但是有用的就隻有那幾份文檔和書籍,首推 的就是Fr e eRTOS官方的兩份文檔:《 Fr e eRTOS_Re f e r enc e_Manua l_V9. 0. 0》和《Ma s t e r i ng_t he _Fr e eRTOS_Re a l _Time _Ke rne l A_Hands On_Tu t o r i a l _Gu i de》, 讀者可以在Fr e eRTOS官網下載。另外,涉及Co r t ex M內核的時候推薦讀者參考《 ARMCo r t ex M3與Co r t ex M4指南(第3版)》,此書對Co r t ex M3/M4內 核做瞭詳細講解。本書重點講解Fr e eROTS的原理和使用,不會對STM32的使用 做過多講解,這方麵的資料可以參考ALIENTEK推齣的精通STM32F4係列叢書 和ST官方的參考手冊、數據手冊等。 配套資料 本書配套資料包括視頻教程、文檔教程、各個例程的源碼及相關參考資料,所有 資料均可在開源電子網免費下載,網址為. openedv. c om。 感 謝 本書獲得瞭ALIENTEK公司的大力支持,它為本書的編寫提供瞭很多便利條 件,並且給予瞭大量的建議。衷心感謝劉軍、張洋、劉勇財、周莉、劉海濤、李振勇、黃 樹乾、吳振陽、彭立峰、羅建等人的審稿,感謝開源電子網廣大網友對本書提齣的 建議。 由於編者水平有限,加之時間倉促,難免會有錯誤和不足之處,希望廣大讀者能 夠提齣寶貴意見。如果發現有錯誤的地方可以發郵件到郵箱: zuo zhaongka i@ ou t l ook. c om,或者在論壇ww. openedv. 上留言。
STM32F7原理與應用——寄存器版(上)
本套書籍以ST公司的STM32F767為目標芯片,詳細介紹瞭STM32F7的特點、片內外資源的使用,並輔以65個例程,由淺入深地介紹瞭STM32F7的使用。所有例程都經過精心編寫,從原理開始介紹,到代碼編寫、下載驗證,一步步教讀者如何實現。所有源碼都配有詳細注釋,且經過嚴格測試。另外,源碼有生成好的hex文件,讀者隻需要通過仿真器下載到開發闆即可看到實驗現象,親自體驗實驗過程。套書總共分為4冊:
《STM32F7原理與應用———寄存器版(上)》、《STM32F7原理與應用———寄存器版(下)》、
《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》。本書是《STM32F7原理與應用———寄存器版(上)》,分為3個篇:①硬件篇,主要介紹本書的硬件平颱;②軟件篇,主要介紹STM32F7常用開發軟件的使用以及一些下載調試的技巧,並詳細介紹幾個常用的係統文件(程序);③實戰篇,通過30個實例(後35個見下冊)帶領讀者一步步深入瞭解STM32F7。本書適閤STM32F7初學者和自學者學習參考,對有一定經驗的電子工程技術人員也具有實用參考價值。本書也可以作為高校電子、通信、計算機、信息等相關專業的教學參考用書。
STM32F7原理與應用——寄存器版(上)
序
2014年底,意法半導體(ST)發布瞭STM32F7係列芯片。該芯片采用ARM公司近發布的新、強的ARMCortexM7內核,其性能約為意法半導體原有強處理器STM32F4(采用ARMCortexM4內核)的兩倍。STM32F7係列微控製器的工作頻率高達216MHz,采用6級超標量流水綫和硬件浮點單元(FloatingPointUnit,FPU),測試分數高達1000CoreMark。在STMCU高級市場部經理曹錦東先生的幫助下,作者有幸於2015年拿到瞭STM32F7的樣片和評估闆。STM32F7強大的處理能力以及豐富的外設資源足以應付各種需求,在工業控製、音頻處理、智能傢居、物聯網和汽車電子等領域,有著廣泛的應用前景。其強大的DSP處理性能足以替代一部分DSP處理器,在中高端通用處理器市場有很強的競爭力。由於STM32F7和ARMCortexM7公布都不久,除瞭ST官方的STM32F7文檔和源碼,網絡上很少有相關的教程和代碼,遇到問題時也很少有人可以討論。作為STM32F7在國內較早的使用者,作者經過近兩年的學習和研究,將STM32F7的所有資源摸索瞭一遍,在此過程中,發現並解決瞭不少bug。為瞭讓沒接觸過STM32F7的朋友更快、更好地掌握STM32F7,作者設計瞭一款STM32F7開發闆(阿波羅STM32F767開發闆),並對STM32F7的絕大部分資源編寫瞭例程和詳細教程。這些教程淺顯易懂,使用的描述語言很自然,而且圖文並茂,每一個知識點都設計瞭一個可以運行的示例程序,非常適閤初學者學習。時至今日,書已成型,兩年的時間包含瞭太多的心酸與喜悅,終呈現給讀者的是包括:《STM32F7原理與應用———寄存器版(上)》、《STM32F7原理與應用———寄存器版(下)》、《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》共4本書的一套書籍。這主要有以下幾點考慮:①STM32F7的代碼編寫有兩種方式:寄存器和HAL庫。寄存器方式編寫的代碼具有精簡、高效的特點,但是需要程序員對相關寄存器比較熟悉;HAL庫方式編寫的代碼具有簡單、易用的特點,但是效率低,代碼量較大。一般想深入學習瞭解的話,建議選擇寄存器方式;想快速上手的話,建議選擇HAL庫方式。實際應用中,這兩種方式都有很多朋友選擇,所以分為寄存器和庫函數兩個版本齣版。②STM32F7的功能十分強大,外設資源也非常豐富,因此教程篇幅也相對較大,而一本書的厚度是有限的,無法將所有內容都編到一本書上,於是分成上下兩冊。
由於STM32F7的知識點非常多,即便分成上下兩冊,對很多方麵也沒有深入探討,需要後續繼續研究,而一旦有新的內容,我們將盡快更新到開源電子網(.openedv.)。STM32F7簡介STM32F7是ST公司推齣的款基於ARMCortexM7內核的微處理器,具有6級流水綫、硬件單/雙精度浮點計算單元、L1I/DCache、支持Flash零等待運行代碼、支持DSP指令、主頻高達216MHz,實際性能是STM32F4的兩倍;另外,還有QSPI、FMC、TFTLCD控製器、SAI、SPDIF、硬件JPEG編解碼器等外設,資源十分豐富。套書特色本套書籍作為學習STM32F7的入門級教材,也是市麵上套係統地介紹STM32F7原理和應用的教材,具有如下特色:新。新芯片,使用新的STM32F767芯片;新編譯器,使用新的MDK5.21編譯器;新庫,基於ST主推的HAL庫編寫(HAL庫版)代碼,不再使用標準庫。全。書中包含瞭大量例程,基本上STM32F7的所有資源都有對應的實例,每個實例都從原理開始講解→硬件設計→軟件設計→結果測試,詳細介紹瞭每個步驟,力求全麵掌握各個知識點。循序漸進。書本從實驗平颱開始→硬件資源介紹→軟件使用介紹→基礎知識講解→例程講解,一步一步地學習STM32F7,力求做到心中有數,循序漸進。由簡入難。書本例程從基礎的跑馬燈開始→復雜的綜閤實驗,由簡入難,一步步深入,完成對STM32F7各個知識點的學習。無限更新。由於書本的特殊性,無法隨時更新,一旦有新知識點的教程和代碼,作者都會發布在開源電子網(.openedv.),讀者多關注即可。套書結構本套書籍一共分為2個版本,共4本:《STM32F7原理與應用———寄存器版(上)》、
《STM32F7原理與應用———寄存器版(下)》、《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》。其中,寄存器版本全部基於寄存器操作,精簡高效,適閤深入學習和研究;HAL庫版本全部采用HAL庫操作,簡單易用,適閤快速掌握和使用。上冊詳細介紹瞭實驗平颱的硬件、開發軟件的入門和使用、新建工程、下載調試和30個基礎例程,並且這30個基礎例程絕大部分都是針對STM32F7內部一些基本外設的使用,比較容易掌握,也是靈活使用STM32F7的基礎。對於想入門,或者剛接觸STM32F7的朋友,上冊版本是您的理想之選。下冊則詳細介紹瞭34/35(寄存器版多瞭綜閤實驗)個高級例程,針對STM32F7內部的一些高級外設和第三方代碼(FATFS、Lwip、μC/OS和音頻解碼庫等)的使用等做瞭詳細介紹,對學習者要求比較高,適閤對STM32F7有一定瞭解、基礎比較紮實的朋友學習。本套書籍的結構如下所示:
使用本套書籍對於時間充足、有過單片機使用經驗、對底層驅動感興趣的朋友,建議選擇寄存器版本學習。因為它全部是基於底層的寄存器操作,對學習者要求比較高,需要較多的時間來掌握,但是學會之後,編寫代碼思路會清晰很多,而且代碼精簡,效率極高。對於想快速入門、對底層接口興趣不大,專注應用層軟件的朋友,建議選擇HAL庫版本學習。因為它的底層驅動,全部由ST官方寫好瞭,讀者隻須學會函數和參數的使用,就能實現對相關外設的驅動,有利於快速編寫驅動代碼,無須繁瑣地查看寄存器,容易入門,能有更多的時間來實現應用層的功能。對於沒有學習過STM32F7的初學者,建議先學習上冊的內容,它對STM32F7的軟硬件開發環境進行瞭詳細的介紹,從新建工程教起,包括30個STM32F7內部資源使用的基礎例程,每個例程都有詳細的解說和示例程序,非常適閤初學者入門。對於有一定單片機編程基礎、對STM32F7有一定瞭解(好學過本套書籍上冊內容)、想進一步提高的朋友,推薦學習下冊內容,它對STM32F7的一些高級外設有詳細介紹和參考代碼,並且對第三方代碼組件也有比較詳細的介紹,非常適閤較大工程的應用。緻謝感謝北京航空航天大學齣版社,它的支持纔讓本套書籍得以和大傢見麵。感謝開源電子網的網友,是他們的支持和幫助纔讓我一步一步走瞭下來,其中有一些朋友還參與瞭本套書籍的審校和代碼審核工作,特彆感謝:八度空間、春風、jerymy_z、yyx112358等網友,他們參與瞭本書的審校工作。是眾多朋友的認真工作,纔使得本套書籍可以較早地齣版。由於作者技術水平有限,精力有限,書中難免齣現錯誤和代碼設計缺陷,懇請讀者批評指正(郵箱:liujun6037@foxmail.)。讀者可以在開源電子網(.openedv.)免費下載到本套書籍的全部源碼,並查看與本套書籍對應的不斷更新的係列教程。
劉軍2017年2月於廣州
前言
作為CortexM係列通用處理器市場的大占有者,STM32以其優異的性能、超高的、豐富的本地化教程,迅速占領瞭市場。ST公司自2007年推齣款STM32以來,先後推齣瞭STM32F0/F1/F2/F3/F4/F7等係列産品,涵蓋瞭CortexM0/M3/M4/M7等內核,總齣貨量超過18億顆,是ARM公司CortexM係列內核的霸主。STM32F7係列是ST推齣的基於ARMCortexM7內核的處理器,采用6級流水綫,性能高達5CoreMark/MHz,在200MHz工作頻率下測試數據高達1000CoreMarks,遠超此前性能高的STM32F4(CortexM4內核)係列(DSP性能超過STM32F4的兩倍)。STM32F76x係列(包括STM32F765/767/768/769等),主要有如下優勢:更先進的內核,采用CortexM7內核,具有16KB指令/數據Cache,采用ST獨有的自適應實時加速技術(ARTAccelerator),性能高達5CoreMark/MHz。更豐富的外設,擁有高達512KB的片內SRAM,並且支持SDRAM、帶TFTLCD控製器、帶圖形加速器(ChormeART)、帶攝像頭接口(DCMI)、帶硬件JPEG編解碼器、帶QSPI接口、帶SAI&I2S;音頻接口、帶SPDIFRX接口、USB高速OTG、真隨機數發生器、OTP存儲器等。更高的性能,STM32F767高運行頻率可達216MHz,具有6級流水綫,帶有指令和數據Cache,大大提高瞭性能,性能大概是STM32F4的兩倍。而且STM32F76x自帶瞭雙精度硬件浮點單元(DFFPU),在做DSP處理的時候具有更好的性能。STM32F76x係列自帶瞭LCD控製器和SDRAM接口,對於想要驅動大屏或需要大內存的朋友來說,是個非常不錯的選擇;更重要的是集成瞭硬件JPEG編解碼器,可以秒解JPEG圖片,做界麵的時候可以大大提高加載速度,並且可以實現視頻播放。本書將以STM32F767為例,嚮大傢講解STM32F7的學習。內容特點學習STM32F767有幾份資料經常用到:《STM32F7中文參考手冊》、《STM32F7xx參考手冊》英文版、《STM32F7編程手冊》。其中,常用的是《STM32F7中文參考手冊》。該文檔是ST官方針對STM32F74x/75x的一份中文參考資料,裏麵有絕大部分寄存器的詳細描述,內容翔實,但是沒有實例,也沒有對CortexM7構架進行大多介紹,讀者隻能根據自己對書本的理解來編寫相關代碼。另外,對STM32F767特有的部分外設(比如硬件JPEG編解碼器、DFSDM等),則必須參考《STM32F7xx參考手冊》英文版來學習。
《STM32F7編程手冊》文檔則重點介紹瞭CortexM7內核的匯編指令及其使用、內核相關寄存器(比如SCB、NVIC、SYSTICK等寄存器)是《STM32F7中文參考手冊》的重要補充。很多在《STM32F7中文參考手冊》無法找到的內容,都可以在這裏找到答案,不過目前該文檔沒有中文版本,隻有英文版。本書將結閤以上3份資料,從寄存器級彆齣發,深入淺齣地嚮讀者展示STM32F767的各種功能。總共配有65個實例,基本上每個實例均配有軟硬件設計,在介紹完軟硬件之後馬上附上實例代碼,並帶有詳細注釋及說明,讓讀者快速理解代碼。這些實例涵蓋瞭STM32F7的絕大部分內部資源,並且提供瞭很多實用級彆的程序,如內存管理、NANDFlashFTL、拼音輸入法、手寫識彆、圖片解碼、IAP等。所有實例均在MDK5.21A編譯器下編譯通過,讀者隻須下載程序到ALIENTEK阿波羅STM32開發闆即可驗證實驗。讀者對象不管你是一個STM32初學者,還是一個老手,本書都非常適閤。尤其對於初學者,本書將手把手地教你如何使用MDK,包括新建工程、編譯、仿真、下載調試等一係列步驟,讓你輕鬆上手。本書不適用於想通過HAL庫學習STM32F7的讀者,因為本書的絕大部分內容都是直接操作寄存器的;如果想通過HAL庫學習STM32F7,可看本套書的HAL庫版本。配套資料本書的實驗平颱是ALIENTEK阿波羅STM32F7開發闆,有這款開發闆的朋友可以直接拿本書配套資料上的例程在開發闆上運行、驗證。而沒有這款開發闆而又想要的朋友,可以上淘寶購買。當然,如果已有瞭一款自己的開發闆,而又不想再買,也是可以的,隻要你的闆子上有和ALIENTEK阿波羅STM32F7開發闆上的相同資源(需要實驗用到的),代碼一般都是可以通用的,你需要做的就隻是把底層的驅動函數(比如I/O口修改)稍做修改,使之適閤你的開發闆即可。本書配套資料包括ALIENTEK阿波羅STM32F7開發闆相關模塊原理圖(pdf格式)、視頻教程、文檔教程、配套軟件、各例程程序源碼和相關參考資料等,所有這些資料讀者都可以在.openedv./thread1391211.html免費下載。
劉軍2017年2月於廣州
STM32F7原理與應用——寄存器版(下)
本套書籍以ST公司的STM32F767為目標芯片,詳細介紹瞭STM32F7的特點、片內外資源的使用,並輔以65個例程,由淺入深地介紹瞭STM32F7的使用。所有例程都經過精心編寫,從原理開始介紹,到代碼編寫、下載驗證,一步步教讀者如何實現。所有源碼都配有詳細注釋,且經過嚴格測試。另外,源碼有生成好的hex文件,讀者隻需要通過仿真器下載到開發闆即可看到實驗現象,親自體驗實驗過程。套書總共分為4冊:
《STM32F7原理與應用———寄存器版(上)》、《STM32F7原理與應用———寄存器版(下)》、
《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》。本書為《STM32F7原理與應用———寄存器版(下)》,共35章,通過35個高級實驗例程(對應實驗31~實驗65),帶領大傢深入瞭解STM32F7的使用。對於沒有學過STM32的初學者,強烈建議先閱讀上冊內容,再來學習本書內容。本書適閤STM32F7初學者學習參考,對有一定經驗的電子工程技術人員也具有實用參考價值。本書也可以作為高等院校電子、通信、計算機、信息等相關專業的教學參考用書。
STM32F7原理與應用——寄存器版(下)
序
2014年底,意法半導體(ST)發布瞭STM32F7係列芯片。該芯片采用ARM公司近發布的新、強的ARMCortexM7內核,其性能約為意法半導體原有強處理器STM32F4(采用ARMCortexM4內核)的兩倍。STM32F7係列微控製器的工作頻率高達216MHz,采用6級超標量流水綫和硬件浮點單元(FloatingPointUnit,FPU),測試分數高達1000CoreMark。在STMCU高級市場部經理曹錦東先生的幫助下,作者有幸於2015年拿到瞭STM32F7的樣片和評估闆。STM32F7強大的處理能力以及豐富的外設資源足以應付各種需求,在工業控製、音頻處理、智能傢居、物聯網和汽車電子等領域,有著廣泛的應用前景。其強大的DSP處理性能足以替代一部分DSP處理器,在中高端通用處理器市場有很強的競爭力。由於STM32F7和ARMCortexM7公布都不久,除瞭ST官方的STM32F7文檔和源碼,網絡上很少有相關的教程和代碼,遇到問題時也很少有人可以討論。作為STM32F7在國內較早的使用者,作者經過近兩年的學習和研究,將STM32F7的所有資源摸索瞭一遍,在此過程中,發現並解決瞭不少bug。為瞭讓沒接觸過STM32F7的朋友更快、更好地掌握STM32F7,作者設計瞭一款STM32F7開發闆(阿波羅STM32F767開發闆),並對STM32F7的絕大部分資源編寫瞭例程和詳細教程。這些教程淺顯易懂,使用的描述語言很自然,而且圖文並茂,每一個知識點都設計瞭一個可以運行的示例程序,非常適閤初學者學習。時至今日,書已成型,兩年的時間包含瞭太多的心酸與喜悅,終呈現給讀者的是包括:《STM32F7原理與應用———寄存器版(上)》、《STM32F7原理與應用———寄存器版(下)》、《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》共4本書的一套書籍。這主要有以下幾點考慮:①STM32F7的代碼編寫有兩種方式:寄存器和HAL庫。寄存器方式編寫的代碼具有精簡、高效的特點,但是需要程序員對相關寄存器比較熟悉;HAL庫方式編寫的代碼具有簡單、易用的特點,但是效率低,代碼量較大。一般想深入學習瞭解的話,建議選擇寄存器方式;想快速上手的話,建議選擇HAL庫方式。實際應用中,這兩種方式都有很多朋友選擇,所以分為寄存器和庫函數兩個版本齣版。②STM32F7的功能十分強大,外設資源也非常豐富,因此教程篇幅也相對較大,而一本書的厚度是有限的,無法將所有內容都編到一本書上,於是分成上下兩冊。
由於STM32F7的知識點非常多,即便分成上下兩冊,對很多方麵也沒有深入探討,需要後續繼續研究,而一旦有新的內容,我們將盡快更新到開源電子網(.openedv.)。STM32F7簡介STM32F7是ST公司推齣的款基於ARMCortexM7內核的微處理器,具有6級流水綫、硬件單/雙精度浮點計算單元、L1I/DCache、支持Flash零等待運行代碼、支持DSP指令、主頻高達216MHz,實際性能是STM32F4的兩倍;另外,還有QSPI、FMC、TFTLCD控製器、SAI、SPDIF、硬件JPEG編解碼器等外設,資源十分豐富。套書特色本套書籍作為學習STM32F7的入門級教材,也是市麵上套係統地介紹STM32F7原理和應用的教材,具有如下特色:新。新芯片,使用新的STM32F767芯片;新編譯器,使用新的MDK5.21編譯器;新庫,基於ST主推的HAL庫編寫(HAL庫版)代碼,不再使用標準庫。全。書中包含瞭大量例程,基本上STM32F7的所有資源都有對應的實例,每個實例都從原理開始講解→硬件設計→軟件設計→結果測試,詳細介紹瞭每個步驟,力求全麵掌握各個知識點。循序漸進。書本從實驗平颱開始→硬件資源介紹→軟件使用介紹→基礎知識講解→例程講解,一步一步地學習STM32F7,力求做到心中有數,循序漸進。由簡入難。書本例程從基礎的跑馬燈開始→復雜的綜閤實驗,由簡入難,一步步深入,完成對STM32F7各個知識點的學習。無限更新。由於書本的特殊性,無法隨時更新,一旦有新知識點的教程和代碼,作者都會發布在開源電子網(.openedv.),讀者多關注即可。套書結構本套書籍一共分為2個版本,共4本:《STM32F7原理與應用———寄存器版(上)》、
《STM32F7原理與應用———寄存器版(下)》、《STM32F7原理與應用———HAL庫版(上)》和《STM32F7原理與應用———HAL庫版(下)》。其中,寄存器版本全部基於寄存器操作,精簡高效,適閤深入學習和研究;HAL庫版本全部采用HAL庫操作,簡單易用,適閤快速掌握和使用。上冊詳細介紹瞭實驗平颱的硬件、開發軟件的入門和使用、新建工程、下載調試和30個基礎例程,並且這30個基礎例程絕大部分都是針對STM32F7內部一些基本外設的使用,比較容易掌握,也是靈活使用STM32F7的基礎。對於想入門,或者剛接觸STM32F7的朋友,上冊版本是您的理想之選。下冊則詳細介紹瞭34/35(寄存器版多瞭綜閤實驗)個高級例程,針對STM32F7內部的一些高級外設和第三方代碼(FATFS、Lwip、μC/OS和音頻解碼庫等)的使用等做瞭詳細介紹,對學習者要求比較高,適閤對STM32F7有一定瞭解、基礎比較紮實的朋友學習。本套書籍的結構如下所示:
使用本套書籍對於時間充足、有過單片機使用經驗、對底層驅動感興趣的朋友,建議選擇寄存器版本學習。因為它全部是基於底層的寄存器操作,對學習者要求比較高,需要較多的時間來掌握,但是學會之後,編寫代碼思路會清晰很多,而且代碼精簡,效率極高。對於想快速入門、對底層接口興趣不大,專注應用層軟件的朋友,建議選擇HAL庫版本學習。因為它的底層驅動,全部由ST官方寫好瞭,讀者隻須學會函數和參數的使用,就能實現對相關外設的驅動,有利於快速編寫驅動代碼,無須繁瑣地查看寄存器,容易入門,能有更多的時間來實現應用層的功能。對於沒有學習過STM32F7的初學者,建議先學習上冊的內容,它對STM32F7的軟硬件開發環境進行瞭詳細的介紹,從新建工程教起,包括30個STM32F7內部資源使用的基礎例程,每個例程都有詳細的解說和示例程序,非常適閤初學者入門。對於有一定單片機編程基礎、對STM32F7有一定瞭解(好學過本套書籍上冊內容)、想進一步提高的朋友,推薦學習下冊內容,它對STM32F7的一些高級外設有詳細介紹和參考代碼,並且對第三方代碼組件也有比較詳細的介紹,非常適閤較大工程的應用。緻謝感謝北京航空航天大學齣版社,它的支持纔讓本套書籍得以和大傢見麵。感謝開源電子網的網友,是他們的支持和幫助纔讓我一步一步走瞭下來,其中有一些朋友還參與瞭本套書籍的審校和代碼審核工作,特彆感謝:八度空間、春風、jerymy_z、yyx112358等網友,他們參與瞭本書的審校工作。是眾多朋友的認真工作,纔使得本套書籍可以較早地齣版。由於作者技術水平有限,精力有限,書中難免齣現錯誤和代碼設計缺陷,懇請讀者批評指正(郵箱:liujun6037@foxmail.)。讀者可以在開源電子網(.openedv.)免費下載到本套書籍的全部源碼,並查看與本套書籍對應的不斷更新的係列教程。
劉軍2017年2月於廣州
STM32F7原理與應用—HAL庫版(上)
STM32F7原理與應用—HAL庫版(下)
评分
评分
评分
评分
评分
评分
评分
评分
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有