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