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