《精通STM32F4(寄存器版 第2版)》由淺入深,旨在講解STM32F407的各個(gè)功能。該書總共分為3篇:硬件篇,主要介紹實(shí)驗(yàn)平臺(tái);軟件篇,主要介紹STM32F4常用開發(fā)軟件的使用以及一些下載調(diào)試的技巧,并詳細(xì)介紹幾個(gè)常用的系統(tǒng)文件(程序);實(shí)戰(zhàn)篇,通過(guò)34個(gè)實(shí)例(絕大部分是直接操作寄存器完成的)帶領(lǐng)大家一步步深入了解STM32F4。本次修訂對(duì)部分知識(shí)進(jìn)行了更新。
該書可配套ALIENTEK探索者STM32F4開發(fā)板學(xué)習(xí)使用,配套資料包含詳細(xì)原理圖以及所有實(shí)例的完整代碼,這些代碼都有詳細(xì)的注釋,且都經(jīng)過(guò)嚴(yán)格測(cè)試,不會(huì)有任何警告和錯(cuò)誤。另外,源碼已生成hex文件,讀者只需要通過(guò)串口/仿真器下載到開發(fā)板即可看到實(shí)驗(yàn)現(xiàn)象,親自體驗(yàn)實(shí)驗(yàn)過(guò)程。
《精通STM32F4(寄存器版 第2版)》適用于學(xué)生和電子愛好者學(xué)習(xí)STM32F4,其大量的實(shí)驗(yàn)以及詳細(xì)的解說(shuō)也是公司產(chǎn)品開發(fā)的有力助手。
作為Cortex-M3市場(chǎng)的最大占有者之一,ST公司在2011年推出了基于Cortex -M4內(nèi)核的STM32F4系列產(chǎn)品。相比STM32F1/F2等Cortex-M3產(chǎn)品,STM32F4最大的優(yōu)勢(shì)就是新增了硬件FPU單元以及DSP指令,同時(shí),其主頻也提高了很多,達(dá)到168 MHz(可獲得210 DMIPS的處理能力),使得STM32F4尤其適用于需要浮點(diǎn)運(yùn)算或DSP處理的應(yīng)用,因而被稱為DSC,具有非常廣泛的應(yīng)用前景。
STM32F4相對(duì)于STM32F1,主要優(yōu)勢(shì)如下:
、俑冗M(jìn)的內(nèi)核。STM32F4采用Cortex-M4內(nèi)核,帶FPU和DSP指令集,而STM32F1采用的是Cortex-M3內(nèi)核,不帶FPU和DSP指令集。
、诟嗟馁Y源。STM32F4擁有192 KB的片內(nèi)SRAM,帶攝像頭接口(DCMI)、加密處理器(CRYP)、USB高速OTG、真隨機(jī)數(shù)發(fā)生器、OTP存儲(chǔ)器等。
、墼鰪(qiáng)的外設(shè)功能。對(duì)于相同的外設(shè)部分,STM32F4具有更快的模/數(shù)轉(zhuǎn)換速度、更低的ADC/DAC工作電壓、32位定時(shí)器、帶日歷功能的實(shí)時(shí)時(shí)鐘(RTC)、復(fù)用功能大大增強(qiáng)的I/O、4 KB的電池備份SRAM以及更快的USART和SPI通信速度。
④更高的性能。STM32F4最高運(yùn)行頻率可達(dá)168 MHz,而STM32F1只能到72 MHz; STM32F4擁有ART自適應(yīng)實(shí)時(shí)加速器,可以達(dá)到相當(dāng)于FLASH零等待周期的性能,STM32F1則需要等待周期;STM32F4的FSMC采用32位多重AHB總線矩陣,相比STM32F1總線訪問(wèn)速度明顯提高。
、莞偷墓。STM32F40x的功耗為238μA/MHz,其中,低功耗版本的STM32F401更是低到140μA/MHz,而STM32F1則高達(dá)421μA/MHz。
STM32F4家族目前擁有STM32F40x、STM32F41x、STM32F42x和STM32F43x等幾個(gè)系列、數(shù)十個(gè)產(chǎn)品型號(hào),不同型號(hào)之間軟件和引腳具有良好的兼容性,可方便客戶迅速升級(jí)產(chǎn)品。其中,STM32F42x/43x系列帶LCD控制器和SDRAM接口,對(duì)于
想要驅(qū)動(dòng)大屏或需要大內(nèi)存的用戶來(lái)說(shuō),是個(gè)不錯(cuò)的選擇。目前,STM32F4這些芯片型號(hào)都已量產(chǎn),可以方便地購(gòu)買到,性價(jià)比最高的是STM32F407。本書將以
STM32F407為例來(lái)講解STM32F4。
內(nèi)容特點(diǎn)
學(xué)習(xí)STM32F4經(jīng)常用到的資料:《STM32F4xx中文參考手冊(cè)》、《STM32F3與F4系列Cortex-M4內(nèi)核編程手冊(cè)》英文版、《ARM Cortex-M3與M4權(quán)威指南》英文版。
最常用的是《STM32F4xx中文參考手冊(cè)》。該手冊(cè)是ST官方針對(duì)STM32的一份通用參考資料,內(nèi)容翔實(shí),但是沒(méi)有實(shí)例,也沒(méi)有對(duì)Cortex-M4構(gòu)架進(jìn)行太多介紹,讀者只能根據(jù)自己對(duì)書本的理解來(lái)編寫相關(guān)代碼。
《STM32F3與F4系列Cortex-M4內(nèi)核編程手冊(cè)》則重點(diǎn)介紹了Cortex-M4內(nèi)核的匯編指令及其使用、內(nèi)核相關(guān)寄存器(如SCB、NVIC、SYSTICK等寄存器),是《STM32F4xx中文參考手冊(cè)》的重要補(bǔ)充。很多在《STM32F4xx中文參考手冊(cè)》無(wú)法找到的內(nèi)容都可以在這里找到,不過(guò)目前該文檔沒(méi)有中文版本,只有英文版。
《ARM Cortex-M3與M4權(quán)威指南》詳細(xì)介紹了Cortex-M3和Cortex-M4內(nèi)核的體系架構(gòu),并配有簡(jiǎn)單實(shí)例。對(duì)于想深入了解Cortex-M4內(nèi)核的讀者來(lái)說(shuō),這是非常好的參考資料。該文檔目前只有英文版。由于Cortex-M3和Cortex-M4很多地方都是通用的,所以有的時(shí)候可以參考《ARM Cortex-M3權(quán)威指南(中文版)》文檔。
本書將結(jié)合以上3份資料,從寄存器級(jí)別出發(fā),深入淺出地向讀者展示STM32F4的各種功能。全書配有34個(gè)實(shí)例,每個(gè)實(shí)例均配有軟硬件設(shè)計(jì),在介紹完軟硬件之后附上實(shí)例代碼,并帶有詳細(xì)注釋及說(shuō)明,可讓讀者快速理解代碼。
本書實(shí)例涵蓋了STM32F4的絕大部分內(nèi)部資源,提供了很多實(shí)用級(jí)別的程序,如內(nèi)存管理、文件系統(tǒng)、圖片解碼、IAP等。所有實(shí)例在MDK5編譯器下編譯通過(guò),讀者只須下載程序到ALIENTEK探索者STM32開發(fā)板即可驗(yàn)證實(shí)驗(yàn)。
讀者對(duì)象
不管你是一個(gè)STM32初學(xué)者,還是一個(gè)老手,本書都非常適合。對(duì)于初學(xué)者,本書將手把手地教你如何使用MDK,包括新建工程、編譯、仿真、下載調(diào)試等一系列步驟,讓你輕松上手。本書不適用于想通過(guò)庫(kù)函數(shù)學(xué)習(xí)STM32的讀者,因?yàn)楸緯慕^大部分內(nèi)容都是直接操作STM32寄存器的;如果想通過(guò)庫(kù)函數(shù)學(xué)習(xí)STM32F4,可以參考《精通STM32F4(庫(kù)函數(shù)版)(第2版)》一書。
配套資料
本書的實(shí)驗(yàn)平臺(tái)是ALIENTEK探索者STM32開發(fā)板,有這款開發(fā)板的朋友可直接拿本書配套的例程在開發(fā)板上運(yùn)行、驗(yàn)證。而沒(méi)有這款開發(fā)板的朋友,可以上淘寶購(gòu)買。當(dāng)然,如果已有了一款自己的開發(fā)板,只要你的板子上有ALIENTEK探索者STM32開發(fā)板上的相同資源(需要實(shí)驗(yàn)用到的)也可以,代碼一般都是通用的,你需要做的只是把底層的驅(qū)動(dòng)函數(shù)(比如I/O口修改)稍做修改,使之適合你的開發(fā)板即可。
第1篇 硬件篇
第1章 實(shí)驗(yàn)平臺(tái)簡(jiǎn)介
1.1 ALIENTEK探索者STM32F4開發(fā)板資源初探
1.2 ALIENTEK探索者STM32F4開發(fā)板資源說(shuō)明
1.2.1 硬件資源說(shuō)明
11 2.2 軟件資源說(shuō)明
第2章 實(shí)驗(yàn)平臺(tái)硬件資源詳解
2.1 開發(fā)板原理圖詳解
2.2 開發(fā)板使用注意事項(xiàng)
2.3 STM32F4學(xué)習(xí)方法
第2篇 軟件篇
第3章 MDK5軟件入門
3.1 MDK5簡(jiǎn)介
3.2 新建MDK5工程
3.3 MDK5使用技巧
3.3.1 文本美化
3.3.2 語(yǔ)法檢測(cè)與代碼提示
3.3.3 代碼編輯技巧
3.3.4 其他小技巧
第4章 下載與調(diào)試
4.1 STM32F4程序下載
4.2 STM32F4在線調(diào)試
第5章 SYSTEM文件夾介紹
5.1 delay文件夾代碼介紹
5.2 sys文件夾代碼介紹
5.2.1 I/0口的位操作實(shí)現(xiàn)
5.2.2 時(shí)鐘配置函數(shù)
5.2.3 Sys_Soft_Reset函數(shù)
5.2.4 Sys_Standby函數(shù)
5.2.5 110設(shè)置函數(shù)
5.2.6 中斷管理函數(shù)
5.3 usart文件夾介紹
5.3.1 USARTl_lRQHandler函數(shù)
5.3.2 uart_init函數(shù)
第3篇 實(shí)戰(zhàn)篇
第6章 跑馬燈實(shí)驗(yàn)
第7章 按鍵輸入實(shí)驗(yàn)
第8章 串口通信實(shí)驗(yàn)
第9章 外部中斷實(shí)驗(yàn)
第10章 獨(dú)立看門狗(IWDG)實(shí)驗(yàn)
第11章 窗口看門狗(WWDG)實(shí)驗(yàn)
第12章 定時(shí)器中斷實(shí)驗(yàn)
第13章 PWM輸出實(shí)驗(yàn)
第14章 輸入捕獲實(shí)驗(yàn)
第15章 TFTLCD顯示實(shí)驗(yàn)
第16章 USMART調(diào)試組件實(shí)驗(yàn)
第17章 RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)
第18章 待機(jī)喚醒實(shí)驗(yàn)
第19章 ADC實(shí)驗(yàn)
第20章 DAC實(shí)驗(yàn)
第21章 DMA實(shí)驗(yàn)
第22章 I2C實(shí)驗(yàn)
第23章 SPI實(shí)驗(yàn)
第24章 RS485實(shí)驗(yàn)
第25章 CAN通信實(shí)驗(yàn)
第26章 觸摸屏實(shí)驗(yàn)
第27章 FLASH模擬EEPROM實(shí)驗(yàn)
第28章 攝像頭實(shí)驗(yàn)
第29章 外部SRAM實(shí)驗(yàn)
第30章 內(nèi)存管理實(shí)驗(yàn)
第31章 SD卡實(shí)驗(yàn)
第32章 FATFS實(shí)驗(yàn)
第33章 漢字顯示實(shí)驗(yàn)
第34章 圖片顯示實(shí)驗(yàn)
第35章 FPU測(cè)試(Julia分形)實(shí)驗(yàn)
第36章 DSP測(cè)試實(shí)驗(yàn)
第37章 串口IAP實(shí)驗(yàn)
第38章 USB讀卡器(Slave)實(shí)驗(yàn)
第39章 網(wǎng)絡(luò)通信實(shí)驗(yàn)
參考文獻(xiàn)