輕松玩轉STM32Cube( 簡體 字) | |
作者:楊百軍 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32 |
出版社:電子工業出版社 | 3dWoo書號: 47325 詢問書籍請說出此書號! 有庫存 NT售價: 295 元 |
出版日:8/1/2017 | |
頁數:312 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121322372 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
基礎篇
第1章 選擇開發板 1.1 國外的開發板 1.2 國內的開發板 1.3 Nucleo-F103RB開發板 1.4 思考與練習 第2章 走近STM32 2.1 認識STM32 2.2 STM32與Cortex-M3的關系 2.3 Cortex-M3與ARM 2.4 思考與練習 第3章 認識MDK-ARM 3.1 開發工具介紹 3.2 MDK-ARM的安裝與注冊 3.2.1 MDK-ARM的安裝 3.2.2 注冊MDK-ARM 3.3 從例程入手 3.3.1 了解MDK-ARM 3.3.2 例程Blinky 3.4 思考與練習 第4章 初識STM32Cube 4.1 STM32CubeMX 4.2 STM32Cube軟件包 4.3 STM32CubeF1實例 4.4 思考與練習 入門篇 第5章 跑馬燈實驗 5.1 例程GPIO_IOToggle 5.2 分析例程GPIO_IOToggle 5.2.1 解析HAL_Init函數 5.2.2 解析SystemClock_Config函數 5.2.3 解析LED2_GPIO_CLK_ENABLE函數 5.2.4 解析HAL_GPIO_Init函數 5.2.5 為何LED燈能閃爍 5.3 新建例程 5.3.1 重新創建例程 5.3.2 完善例程 5.4 思考與練習 第6章 外部中斷 6.1 例程GPIO_EXTI 6.2 分析例程 6.2.1 分析例程GPIO_EXTI 6.2.2 解析stm32f10x_it.c 6.3 移植例程 6.3.1 創建例程MyEXTI 6.3.2 外部中斷小結 6.3.3 硬件仿真 6.4 思考與練習 第7章 串口通信USART 7.1 有關USART 7.2 例程UART_Printf 7.2.1 使用例程 7.2.2 新建例程MyPrintf 7.2.3 分析例程 7.3 例程ComPolling 7.3.1 例程介紹 7.3.2 分析例程 7.3.3 重建例程 7.4 例程UART_TwoBoards_ComIT 7.4.1 例程介紹 7.4.2 分析例程 7.4.3 重新生成例程 7.4.4 完善工程 7.5 思考與練習 第8章 DMA控制器 8.1 認識DMA控制器 8.2 例程UART_HyperTerminal_DMA 8.2.1 例程介紹 8.2.2 分析例程 8.2.3 重建例程UART_HyperTerminal_DMA 8.3 思考與練習 第9章 完美定時器 9.1 了解定時器 9.2 例程TIM_TimeBase 9.2.1 例程介紹 9.2.2 分析例程 9.2.3 重建例程 9.3 例程TIM_DMA 9.3.1 例程介紹 9.3.2 分析例程 9.3.3 重新生成例程 9.4 思考與練習 第10章 模數轉換ADC 10.1 模數轉換器ADC 10.2 例程ADC_Sequencer 10.2.1 例程介紹 10.2.2 分析例程 10.2.3 重建例程 10.3 思考與練習 提高篇 第11章 實時操作系統FreeRTOS 11.1 了解操作系統 11.2 例程FreeRTOS_ThreadCreation 11.2.1 例程介紹 11.2.2 分析例程 11.2.3 重建例程 11.2.4 完善例程 11.2.5 擴展例程 11.3 思考與練習 附錄 附錄A 中容量STMF103xB模塊框圖 附錄B 中容量STMF103xB時鐘樹 附錄C STMF103xB存儲器映像 附錄D 圖書資料、網站、開發板推薦 參考文獻 這是一本介紹如何使用STM32Cube組件學習STM32微控制器的入門教材,是一個工程師自身學習STM32過程的經驗總結。全書緊緊圍繞《STM32F10xxx參考手冊》,結合STM32CubeF1軟件包提供的例程進行分析、講解、重新生成,全面、系統地介紹了STM32F103的各個功能項。這是一本教你STM32微控制器具體學習方法的教材。其先從HAL固件庫例程入手,而后結合STM32參考手冊、數據手冊、ARM Cortex-M3權威指南、Cortex-M3編程手冊等ST和ARM兩公司提供的原始資料進行深入、詳細的講解,最后,通過可視化圖形配置工具STM32CubeMX重新生成例程。該方法幾乎可以推廣于STM32微控制器的任何一款芯片,也是經驗豐富的工程師最快了解一款芯片的“獨門絕技”。
前兩年在編寫《輕松玩轉STM32微控制器》一書時,我就注意到ST公司在主推STM32Cube組件,不過由于自己是從標準外設固件庫(STM32F10x Standard Peripheral Library縮寫SPL)上手的,而且當時網上也有不少對STM32Cube組件的負面評價,嘗試之后也發現它的一些不完善之處,因而當時還是選擇標準外設固件庫進行編寫的。
然而,隨著這兩年對STM32Cube組件的深入了解,以及ST公司對STM32Cube組件的不斷完善,加上自己也慢慢習慣于STM32CubeMX生成C語言工程的便捷,越來越覺得有必要寫一本有關STM32Cube組件的入門書籍。 其實,對一個新事物,大家總有一個從慢慢了解到習慣的過程。開始大家都是從標準外設庫入門的,而且網上所賣開發板提供的例程大多也是基于標準外設庫的,因而在學習與工作過程中,人們就慢慢習慣于標準外設庫的開發。其實,在ST公司推出STM32Cube組件和硬件抽象層固件庫(Hardware Abstracton Layer,HAL)時就招到很多人的質疑和排斥,比較網上所賣開發板提供的例程你會發現,STM32F1xx系列的開發板幾乎都是基于標準外設庫開發板時,清一色提供的都是基于HAL庫的,因為ST公司沒有推出基于該系列微控制器的SPL庫(至少目前沒有還推出)。由此可見,學習STM32微控制器,使用HAL庫和STM32Cube組件也是大勢所趨,即使“資深工程師”也在慢慢適應技術的更新。 使用圖形配置工具STM32CubeMX可以快速便捷地生成STM32微控制器的C語言工程框架,開發者只需在工程中實現自己的應用代碼就可以了。然而,這并不是說就不用對STM32微控制器進行學習了。在配置STM32CubeMX的過程中你會發現,還有很多STM32微控制器的知識點需要了解,才能有目的地配置,否則也只能對著該工具無所適從。 說到STM32Cube組件和STM32微控制器的學習,ST公司提供了大量的技術資料。有關圖形配置工具STM32CubeMX和STM32CubeF1軟件包,可以重點參考的資料有: STM32CubeMX for STM32 Configuration and initialization C code generation(STM32CubeMX用戶手冊,UM1718); Getting started with STM32CubeF1 firmware package for STM32F1 Series(STM32CubeF1用戶手冊,UM1847); Description of STM32F1xx HAL drivers(HAL庫用戶手冊,UM1850); STM32Cube firmware examples for STM32F1 Series(STM32Cube應用手冊,AN4724)。 有關STM32微控制器的參考資料就更多了,簡單列舉入門學習時需要重點參考的有: 《ARM Cortex-M3權威指南》(宋巖譯); The Cortex-M3 Technical Reference Manual(Cortex-M3技術參考手冊); STM32F10xxx Reference manual(STM32F10xxx參考手冊,RM0008); STM32F10xxx Cortex-M3 Pramming manual(STM32F10xxx Cortex-M3編程手冊,PM0056); STM32F10xxx Flash programming manual(STM32F10xxx Flash編程手冊,PM0075); DS5319:STM32F103x8、STM32F103xB Datasheet(數據手冊); DS5792:STM32F103xC、STM32F103xD、STM32F103xD Datasheet(數據手冊); MDK-ARM開發環境、例程及幫助文檔; 其他相關器件數據手冊及網絡資料。 學習新知識,沒有資料可以參考時,會覺得很難;資料太多時,會不知所措,不知哪里應該重點學習,如何才能快速上手。寫作本書的目的就是結合ST公司和ARM公司提供的豐富資料,引領讀者找到屬于自己的學習方法。本書從ST的官網入手,指導讀者如何獲取技術資料,然后從STM32CubeF1軟件包提供的例程入手,引導讀者如何利用找到的資料,通過例程慢慢了解哪些資料應該在什么時間段使用。通過例程的功能認識、分析代碼、重新生成,慢慢將例程變為自己的應用實現,在學習的過程中總結技術資料應該如何利用、參考,同時總結出一套屬于自己的學習方法。 其實,從學習方法上引導讀者學習,本就是我選擇技術寫作這條路的初衷。 《輕松玩51單片機》一書是通過簡單的例程,讓單片機入門者有一個輕松的入門過程,在快樂中學習,在學習中找到興趣。 《AVR單片機工程師是怎么煉成的》一書在《輕松玩51單片機》中例程的基礎上引入了數據手冊(Datasheet)的參考,引導讀者學習嵌入式開發要學會使用數據手冊。 本書和《輕松玩轉STM32微控制器》是引導讀者如何通過產品官網獲取技術資料,而后通過例程入手學習如何使用豐富的技術資料。 通過這樣一個臺階一個臺階地學習,希望讀者能夠找到一套自己的學習方法,由開始需要借助圖書,慢慢學會使用數據手冊,最終可以脫離圖書,直接根據自己的需要找到技術資料,從例程入門學習,然后實現自己應用工程的開發。 入門建議 我還算不上STM32微控制器的資深工程師,只是早入門了兩年而已,因而也不敢在讀者面前講太多高深的理論。本書只是告訴讀者如何利用ST公司和ARM公司提供的豐富免費資源快速入門。對于有信心可以自學的讀者,我在此提供一條學習路徑: 先閱讀STM32F10xxx參考手冊的前幾個章節,對STM32有個初步的認識;接下來再閱讀宋巖先生翻譯的《ARM Cortex-M3權威指南》,也不需要看完、吃透,對其內核有個了解就可以了;然后就可以閱讀STM32CubeMX用戶手冊UM1718和STM32CubeF1用戶手冊UM1847,使用STM32CubeF1軟件包提供的例程,結合ST公司提供的硬件抽象層固件庫(HAL)的源代碼及其用戶手冊UM1850進行學習;在學習例程時要學會針對例程再去學習STM32F10xxx參考手冊的相關章節。 STM32入門的門檻相對于8位單片機是高了些,不過按上面的路徑入門之后,后面的路怎么走,讀者心里就會清楚許多。本書也正是按照這條路徑來引導讀者使用STM32CubeMX和MDK-ARM學習STM32微控制器的。書中并沒講什么高深的內容,只是在例程適當的地方加以注釋,讓新手少走點彎路,輕松入門而已。 開發板選型 目前市面上的開發板很多,質量參差不齊,當然是“王婆賣爪,自賣自夸”。其實從主芯片是沒有本質區別的,不管使用的是L系列、M系列,還是H系列,都不會影響基本內容的學習。也就是說,對于STM32入門,幾乎所有的開發板都可以滿足要求。它們的區別是板上有多少外設,對后期進一步的深入學習會有哪些影響。另外,也要看讀者想在哪方面進一步深入學習,不一定非要盲目選擇外設豐富的。例如,想學習物聯網、無線通信,當然要選擇有這些接口、提供豐富例程的開發板;而如果只是想低成本入門,那么選擇一塊幾十元的板子就足夠了。 我也為本書選擇了一塊開發板:ST官方提供的Nucleo-F103RB,當然對于入門學習來說,使用其他開發板也是完全可以的,本書只是根據開發板的原理圖來分析例程,最后使用STM32CubeMX重建例程而已。 致謝 本書由楊百軍編著,參與本書編寫的還有陳澤慧、陳錦權、段富軍、高維娜、龔欽青、黃得建、康磊、李楠、聶運中、王路、王盛、楊俊杰、張延杰和周宏云。另外,印舟、劉帥、黃雅琴、史蕊、于維濤、周樂平等也為本書的編寫提供了大量的幫助。 “學然后知不足,教然后知困”,由于作者水平有限,書中難免會出現一些錯誤,若讀者有疑問或建議,希望能發電子郵件與我溝通。我的電子郵箱:young45@126com,也可通過我的博客young45blogchinaunixnet來了解相關內容。 最后,感謝我的家人和朋友,特別是父母,能放任我如此自由地寫作,沒有給我太多的壓力;也感謝洛陽的師長和同事:刁海南、張文勇、郭銳、齊文釗、陳劍、李為民、趙博、尹國利、謝永進等,嵌入式這條路是在工作之后走上的,若沒有這些前輩的指點,也就沒有我的今天;感謝在大學、中學諄諄教導過我的老師:楊明祥、高克權、楊萬才、李小申、程東明、張曉紅、黎蔚、王輝、劉勇等,楊明祥老師幫我走進了河南科技大學(原洛陽工學院),數理學院的老師為我鋪墊了良好的邏輯分析能力,計算機方向的老師幫我走進了IT行業,由衷地感謝他們的幫助和指引;還有前幾本書的讀者,特別是那些來信給出建議的讀者,如郭凱、張鋒、王帥陽、牛鵬舉、竹顯濤、劉帥、宋文帥等,他們的感謝、鼓勵和建議為我繼續寫作增添了動力;感謝曾經幫助過我的師長、朋友:郝云鵬、黃桂平、欽桂勤、段富軍、許元霄、高金龍、申雷等,正是在他們的鼓勵與幫助下,我完成了這五本圖書的編寫,在此一并表示感謝;也感謝電子工業出版社的王敬棟、張劍、蘇穎杰及其他編輯朋友;最后,感謝人生路上伴我走過的朋友們。 楊百軍 |