STM32的庫函數的一些知識
內容簡介
本手冊將由淺入深,帶領大家進入 STM32 的世界。本手冊總共分為三篇:1,硬件篇,主要介紹我們的實驗平臺;2,軟件篇,主要介紹 STM32 開發(fā)軟件的使用以及一些下載調試的技巧,并詳細介紹了幾個常用的系統(tǒng)文件(程序) ;3,實戰(zhàn)篇,主要通過38個實例(絕大部分是直接操作V3.5 版本庫函數完成的)帶領大家一步步深入 STM32 的學習。 本手冊為ALIENTEK MiniSTM32 V3.0開發(fā)板的配套教程,在開發(fā)板配套的光盤里面,有詳細原理圖以及所有實例的完整代碼,這些代碼都有詳細的注釋,所有源碼都經過我們嚴格測試,不會有任何警告和錯誤,另外,源碼有我們生成好的 hex 文件,大家只需要通過串口下載到開發(fā)板即可看到實驗現象,親自體驗實驗過程。 本手冊不僅非常適合廣大學生和電子愛好者學習 STM32,其大量的實驗以及詳細的解說,也是公司產品開發(fā)的不二參考。
Cortex-M3 ARM V7-M ARMV4T勁的性能,更高的代碼密度,更高的性價比。Cortex-M3 處理器結合多種突破性技術, 在低功耗、低成本、高性能三方面具有突破性的創(chuàng)新,使其在這幾年迅速在中低端單片機市場異軍突起。
國內Cortex-M3市場,ST(意法半導體)公司的 STM32無疑是最大贏家,作為 Cortex-M3內核最先嘗蟹的兩個公司(另一個是 Luminary(流明))之一,ST 無論是在市場占有率,還是在技術支持方面,都是遠超其他對手。在Cortex-M3芯片的選擇上,STM32 無疑是大家的首選。所以自從ST推出STM32之后,一股強勁的STM32學習開發(fā)風潮撲面而來。本書也因STM32的流行應運而生。
本手冊結合《STM32參考手冊》,《Cortex-M3 權威指南》以及《固件庫中文參考手冊》三者的優(yōu)點,通過對關鍵寄存器以及相關固件庫函數的講解,深入淺出,向讀者展示 STM32 的各種功能?偣才溆38 個實例,基本上每個實例在均配有軟硬件設計,在介紹完軟硬件之后,馬上附上實例代碼,并帶有詳細注釋及說明,讓讀者快速理解 STM32 各個外設固件庫函數含義以及實例代碼運行過程。
這些實例涵蓋了 STM32 的絕大部分內部資源,并且提供很多實用級別的程序,如:內存管理、文件系統(tǒng)、圖片解碼、IAP 等。所有實例在MDK5.10 編譯器下編譯通過,大家只需下載程序到ALIENTEK miniSTM32開發(fā)板V3.0,即可驗證實驗。 不管你是一個 STM32 初學者,還是一個老手,這本手冊都非常適合。尤其對于初學者,我們將手把手的教你如何使用 MDK,包括新建工程、編譯、仿真、下載調試等一系列步驟,讓你輕松上手。
本手冊參考的實驗平臺是ALIENTEK miniSTM32 開發(fā)板V3.0,有這款開發(fā)板的朋友則直接可以拿配套光盤上的例程在開發(fā)板上運行、驗證。而沒有這款開發(fā)板而又想要的朋友,可以上淘寶購買。當然你如果有了一款自己的開發(fā)板,而又不想再買,也是可以的,只要你的板子上有 ALIENTEK miniSTM32 開發(fā)板上的相同資源(需要實驗用到的),代碼一般都是可以通用的,你需要做的就只是把外設的驅動函數(一般是 IO 操作)稍做修改,使之適合你的開發(fā)板即可。
本手冊分為庫函數版本和寄存器版本,本手冊為其庫函數版本,需要仔細學習 STM32 底層寄存器開發(fā)的朋友可以直接參考我們的寄存器版本手冊。
在這里我們要提到 STM32寄存器開發(fā)和固件庫開發(fā)的區(qū)別。寄存器開發(fā)跟傳統(tǒng)的 51, AVR單片機開發(fā)類似,直接操作底層寄存器。開發(fā)人員需要掌握相關寄存器的作用,這對于直接從51,AVR單片機轉型而來的開發(fā)人員來說,他們更加熟悉底層原理,所以偏向寄存器開發(fā),因為這樣他們的代碼更加高速有效,內存利用率更高。但是 STM32 寄存器紛繁復雜,不便于快速開發(fā)項目,所以 ST 推出了一整套固件庫,將底層寄存器開發(fā)全部封裝成庫函數,這樣使得開發(fā)人員擺脫直接操作寄存器的煩惱,直接操作庫函數開發(fā)自己的程序,項目開發(fā)更加快速,但是內存利用率稍低。
簡而言之,庫函數開發(fā)用犧牲程序效率換取開發(fā)速度,而寄存器開發(fā)犧牲開發(fā)速度換取程序運行效率。所以針對兩類不同的用戶人群不同的需求,我們書籍提供兩個版本。 兩版本的內容大致接近,只是講解的側重點不一樣,庫函數版本的側重點是 STM32 的固件庫原理以及使用固件庫實現所有實例,寄存器則更加側重寄器的講解以及使用寄存器實現所有例程。兩版本的實戰(zhàn)篇的實驗列表基本一致,有興趣的朋友可以對比閱讀,加深理解。
1) 移植UCOSII
要想UCOSII在 STM32正常運行,當然首先是需要移植UCOSII,這部分我們已經為大家做好了(參考光盤源碼,想自己移植的,請參考光盤UCOSII資料)。 這里我們要特別注意一個地方,ALIENTEK提供的SYSTEM 文件夾里面的系統(tǒng)函數直接支持 UCOSII,只需要在 sys.h 文件里面將:SYSTEM_SUPPORT_UCOS 宏定義改為 1,即可通過delay_init函數初始化UCOSII的系統(tǒng)時鐘節(jié)拍,為UCOSII提供時鐘節(jié)拍。
2) 編寫任務函數并設置其堆棧大小和優(yōu)先級等參數。
編寫任務函數,以便 UCOSII調用。
設置函數堆棧大小,這個需要根據函數的需求來設置,如果任務函數的局部變量多,嵌套層數多,那么相應的堆棧就得大一些,如果堆棧設置小了,很可能出現的結果就是CPU進入HardFault,遇到這種情況,你就必須把堆棧設置大一點了。另外,有些地方還需要注意堆棧字節(jié)對齊的問題,如果任務運行出現莫名其妙的錯誤(比如用到sprintf出錯),請考慮是不是字節(jié)對齊的問題。
設置任務優(yōu)先級,這個需要大家根據任務的重要性和實時性設置,記住高優(yōu)先級的任務有優(yōu)先使用CPU的權利。
3) 初始化UCOSII,并在UCOSII中創(chuàng)建任務
調用OSInit,初始化UCOSII,通過調用OSTaskCreate 函數創(chuàng)建我們的任務。
4) 啟動UCOSII
調用OSStart,啟動 UCOSII。
通過以上 4 個步驟,UCOSII 就開始在 STM32 上面運行了,這里還需要注意我們必須對
os_cfg.h進行部分配置,以滿足我們自己的需要。
完整的pdf格式文檔51黑下載地址(共589頁):
STM32不完全手冊(mini)-庫函數版本.pdf
(19.31 MB, 下載次數: 434)
2018-11-5 15:55 上傳
點擊文件名下載附件
|