《精通STM32F4(HAL庫版)》分為上、下兩冊。本書是上冊,分為基礎(chǔ)篇和實戰(zhàn)篇,詳細介紹了STM32F407的基礎(chǔ)入門知識,包括STM32簡介、開發(fā)環(huán)境搭建、新建HAL庫版本MDK工程、STM32時鐘系統(tǒng)以及STM32F407常用外設(shè)的使用,包括外部中斷、基本定時器、DMA等。
下冊詳細介紹了STM32F407復(fù)雜外設(shè)的使用及一些高級例程,包括觸摸屏、SD卡、USB讀卡器等。建議初學者從上冊開始,跟隨書中的結(jié)構(gòu)安排,循序漸進地學習。對于有一定基礎(chǔ)的讀者,可以直接選擇下冊,進入復(fù)雜外設(shè)的學習過程。
本書配套資料包含詳細原理圖以及所有實例的完整代碼,這些代碼都有詳細的注釋。另外,源碼有生成好的hex文件,讀者只需要通過仿真器下載到開發(fā)板即可看到實驗現(xiàn)象,親自體驗實驗過程。
劉軍,網(wǎng)名正點原子,畢業(yè)于華南理工大學,現(xiàn)任廣州星翼電子科技有限公司技術(shù)總監(jiān),長期活躍在國內(nèi)嵌入式開發(fā)和開發(fā)板領(lǐng)域。創(chuàng)業(yè)至今推出了多款行業(yè)熱門的開發(fā)板,包括戰(zhàn)艦、精英、Mini、探索者以及阿波羅等。此外,還出版了《精通STM32F4》、《原子教你玩STM32》、《例說STM32》和《FreeRTOS源碼詳解與應(yīng)用開發(fā)》等10余本專業(yè)著作,不僅深受廣大讀者的喜愛,更是獲得了ST官方認可。原子哥本人授課風趣幽默,對嵌入式教育有自己的見解,創(chuàng)立正點原子以來,將STM32的學習理念和龐大的知識體系帶給了廣大的學子和STM32的開發(fā)者,對嵌入式教育貢獻巨大。
〓〓第1篇基礎(chǔ)篇
第1章本書學習方法2
第2章STM32簡介8
2.1初識STM328
2.2STM32F407資源簡介9
2.3STM32F407設(shè)計選型10
2.3.1STM32系列10
2.3.2STM32命名11
2.3.3STM32選型12
2.3.4STM32原理圖設(shè)計13
第3章開發(fā)環(huán)境搭建18
3.1常用開發(fā)工具簡介18
3.2MDK安裝19
3.3仿真器驅(qū)動安裝20
3.4CH340 USB虛擬串口驅(qū)動安裝20
第4章STM32初體驗22
4.1使用MDK5編譯例程22
4.2使用串口下載程序26
4.3使用DAP下載與調(diào)試程序30
4.3.1使用DAP下載程序31
4.3.2使用DAP仿真調(diào)試程序33
4.3.3仿真調(diào)試注意事項38
4.4MDK5使用技巧39
4.4.1文本美化39
4.4.2語法檢測&代碼提示42
4.4.3代碼編輯技巧44
4.4.4其他小技巧48
第5章STM32基礎(chǔ)知識入門51
5.1C語言基礎(chǔ)知識復(fù)習51
5.2寄存器基礎(chǔ)知識56
5.3STM32F407系統(tǒng)架構(gòu)57
5.3.1CortexM4內(nèi)核 & 芯片57
5.3.2STM32系統(tǒng)架構(gòu)58
5.3.3存儲器映射59
5.3.4寄存器映射63
第6章認識HAL庫68
6.1初識STM32 HAL庫68
6.1.1CMSIS標準68
6.1.2HAL庫簡介 69
6.1.3HAL庫能做什么 72
6.2HAL庫驅(qū)動包73
6.2.1如何獲得HAL庫固件包 73
6.2.2STM32Cube固件包分析73
6.2.3CMSIS文件夾關(guān)鍵文件76
6.2.4stdint.h簡介78
6.3HAL庫框架結(jié)構(gòu)79
6.3.1HAL庫文件夾結(jié)構(gòu)79
6.3.2HAL庫文件80
6.4如何使用HAL庫83
6.4.1學會用HAL庫組織開發(fā)工具鏈83
6.4.2HAL庫的用戶配置文件85
6.4.3stm32f4xx_hal.c文件87
6.4.4HAL庫中斷處理90
6.4.5正點原子對HAL庫用法的個性化修改91
6.5HAL庫使用注意事項92
第7章新建HAL庫版本MDK工程93
7.1新建HAL庫版本MDK工程簡介93
7.1.1新建工程文件夾93
7.1.2新建一個工程框架96
7.1.3添加文件99
7.1.4魔術(shù)棒設(shè)置105
7.1.5添加main.c并編寫代碼110
7.2下載驗證113
第8章STM32啟動過程分析114
8.1啟動模式114
8.2啟動文件分析116
8.2.1啟動文件中的一些指令116
8.2.2啟動文件代碼講解117
8.2.3系統(tǒng)啟動流程123
8.3map文件分析126
8.3.1MDK編譯生成文件126
8.3.2map文件127
第9章STM32時鐘系統(tǒng)132
9.1認識時鐘樹132
9.1.1時鐘源134
9.1.2鎖相環(huán)PLL134
9.1.3系統(tǒng)時鐘SYSCLK135
9.1.4時鐘信號輸出MCO137
9.2如何修改主頻138
9.2.1STM32F4時鐘系統(tǒng)配置138
9.2.2STM32F4時鐘使能和配置144
第10章SYSTEM文件夾146
10.1delay文件夾代碼146
10.1.1操作系統(tǒng)支持宏定義及相關(guān)函數(shù)147
10.1.2delay_init函數(shù)149
10.1.3delay_us函數(shù)151
10.1.4delay_ms函數(shù)153
10.1.5HAL庫延時函數(shù)HAL_Delay154
10.2sys文件夾代碼155
10.3usart文件夾代碼156
第2篇實戰(zhàn)篇
第11章跑馬燈實驗160
第12章蜂鳴器實驗177
第13章按鍵輸入實驗181
第14章外部中斷實驗188
第15章串口通信實驗202
第16章獨立看門狗(IWDG)實驗224
第17章窗口看門狗(WWDG)實驗231
第18章基本定時器實驗239
第19章通用定時器實驗249
第20章高級定時器實驗279
第21章電容觸摸按鍵實驗321
第22章TFTLCD(MCU屏)實驗329
第23章USMART調(diào)試組件實驗363
第24章RTC實時時鐘實驗373
第25章低功耗實驗393
第26章DMA實驗399
參考文獻412