關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
ARM Cortex-M4嵌入式系統(tǒng)原理及應(yīng)用——基于STM32F407微控制器的HAL庫(kù)開(kāi)發(fā) 讀者對(duì)象:本書(shū)適合作為高等院校計(jì)算機(jī)、自動(dòng)化、電子信息、機(jī)電一體化、物聯(lián)網(wǎng)等專業(yè)高年級(jí)本科生或研究生嵌入式相關(guān)課程的教材, 同時(shí)可供從事嵌入式開(kāi)發(fā)的技術(shù)和研究人員參考 本書(shū)詳細(xì)闡述了基于ARM Cortex-M4內(nèi)核的STM32F407微控制器嵌入式系統(tǒng)硬件設(shè)計(jì)方法和軟件開(kāi)發(fā)技術(shù)。全書(shū)共有十八章,劃分為三篇:第一篇(第1~3章)為系統(tǒng)平臺(tái),講述嵌入式系統(tǒng)定義、嵌入式硬件平臺(tái)和軟件環(huán)境配置與使用入門。第二篇(第4~10章)為基本外設(shè),分別對(duì)STM32嵌入式系統(tǒng)最常用的外設(shè)模塊進(jìn)行介紹,包括GPIO、中斷、定時(shí)器、PWM和嵌入式系統(tǒng)接口技術(shù)。第三篇(第11~18章)為擴(kuò)展外設(shè),分別對(duì)STM32嵌入式系統(tǒng)高級(jí)外設(shè)模塊和典型傳感器進(jìn)行講解,包括USART、SPI、W25Q128、IIC、EEPROM 、ADC、DMA、DAC、RTC和DHT11等。 全書(shū)共18章,分為三篇:第一篇(第1~3章)為系統(tǒng)平臺(tái)模塊,介紹嵌入式系統(tǒng)定義、嵌入式硬件平臺(tái)和軟件環(huán)境;第二篇(第4~10章)為基本外設(shè)模塊,介紹STM32嵌入式系統(tǒng)常用的外設(shè)模塊,包括GPIO、中斷、定時(shí)器、PWM和嵌入式系統(tǒng)接口技術(shù);第三篇(第11~18章)為擴(kuò)展外設(shè)模塊,介紹STM32嵌入式系統(tǒng)高級(jí)外設(shè)模塊和典型的傳感器,包括USART、SPI、W25Q128、I2C、EEPROM、ADC、DMA、DAC、RTC、DHT11等。 系統(tǒng)論述基于STM32CubeMX的HAL開(kāi)發(fā)方法。 以讀者認(rèn)知過(guò)程為導(dǎo)向編排組織書(shū)中章節(jié)內(nèi)容。 項(xiàng)目引領(lǐng),任務(wù)驅(qū)動(dòng),培養(yǎng)讀者工程實(shí)踐能力。 構(gòu)建立體化的教學(xué)資源,便于課程教學(xué)與項(xiàng)目開(kāi)發(fā)。 2020年1月,作者出版了《ARM CortexM3嵌入式原理及應(yīng)用基于STM32F103微控制器》。該書(shū)自出版以來(lái),被國(guó)內(nèi)百余所高校選為教材,年銷萬(wàn)余冊(cè),并先后榮獲清華大學(xué)出版社暢銷圖書(shū)、科技類最受讀者歡迎圖書(shū)和蘇州大學(xué)精品教材等榮譽(yù)稱號(hào),獲得讀者的普遍好評(píng),令作者深受鼓舞,決定再編著一部既注重入門,又兼顧提高的嵌入式系統(tǒng)項(xiàng)目式教材。 1. 出版背景 青山遮不住,畢竟東流去!雖然我們已經(jīng)積累了大量的經(jīng)典的8位單片機(jī)(如MCS51)、16位單片機(jī)(如MSP430)的技術(shù)資料,但是復(fù)雜的指令、較低的主頻、有限的存儲(chǔ)空間、極少的片上外設(shè),使其在面對(duì)復(fù)雜應(yīng)用時(shí),捉襟見(jiàn)肘,難以勝任。8位、16位單片機(jī)的應(yīng)用不會(huì)就此結(jié)束,32位處理器時(shí)代已經(jīng)到來(lái)。 在這個(gè)大環(huán)境下,ARM CortexM處理器轟轟烈烈地誕生了!它性能更強(qiáng)、功耗更低、易于使用。許多曾經(jīng)只能求助于高級(jí)32位處理器或DSP的軟件設(shè)計(jì),都能在ARM CortexM處理器上跑得很快。按照ARM公司的經(jīng)營(yíng)策略,公司只負(fù)責(zé)設(shè)計(jì)處理器IP核,而不生產(chǎn)和銷售具體的處理器芯片。在諸多半導(dǎo)體制造商中,意法半導(dǎo)體(ST Microelectronics)公司較早在市場(chǎng)上推出基于ARM CortexM內(nèi)核的微控制器產(chǎn)品,其根據(jù)ARM CortexM內(nèi)核設(shè)計(jì)生產(chǎn)的STM32微控制器充分發(fā)揮了低成本、低功耗、高性價(jià)比的優(yōu)勢(shì),以系列化的方式推出,方便用戶選擇,受到了廣泛的好評(píng)。在眾多STM32微控制器產(chǎn)品中,基于ARM CortexM3內(nèi)核的STM32F103微控制器和基于ARM CortexM4內(nèi)核的STM32F407微控制器較為用戶所了解,市場(chǎng)占有率很高,很多嵌入式教材也是以二者之一為藍(lán)本進(jìn)行講解的。相比于STM32F103微控制器,STM32F407在內(nèi)核、資源、外設(shè)、性能、功耗等多方面均有較大增強(qiáng),而二者價(jià)格相差并不大,所以本書(shū)選擇以STM32F407為背景機(jī)型進(jìn)行講解。 STM32支持的四種開(kāi)發(fā)方式中的寄存器開(kāi)發(fā)方式和LL庫(kù)開(kāi)發(fā)方式較少使用,嵌入式軟件工程師往往會(huì)在標(biāo)準(zhǔn)庫(kù)開(kāi)發(fā)方式和HAL庫(kù)開(kāi)發(fā)方式之間艱難抉擇。近年來(lái),隨著硬件性能逐步提升和STM32CubeMX軟件的更新升級(jí),HAL庫(kù)開(kāi)發(fā)方式的高效、便捷和通用性得到進(jìn)一步的彰顯,選擇的天平逐漸傾向于HAL庫(kù)開(kāi)發(fā)方式。作者實(shí)踐和比較了兩種開(kāi)發(fā)方式之后,發(fā)現(xiàn)HAL庫(kù)開(kāi)發(fā)方式較標(biāo)準(zhǔn)庫(kù)開(kāi)發(fā)方式可以明顯減少代碼量,大幅降低編程人員翻閱數(shù)據(jù)手冊(cè)的頻率,研發(fā)周期大幅縮短,可靠性顯著提升。雖然HAL庫(kù)開(kāi)發(fā)方式不是完美無(wú)瑕,但利遠(yuǎn)大于弊,它是未來(lái)嵌入式開(kāi)發(fā)的技術(shù)方向,也是STM32官方主推的開(kāi)發(fā)方式。所以,本書(shū)介紹的軟件設(shè)計(jì)是基于圖形化配置工具STM32CubeMX的HAL庫(kù)開(kāi)發(fā),這是當(dāng)前技術(shù)主流,具有一定的前瞻性。 2. 內(nèi)容簡(jiǎn)介 針對(duì)上述情況,作者根據(jù)多年的嵌入式系統(tǒng)教學(xué)和開(kāi)發(fā)經(jīng)驗(yàn)編寫了本書(shū),試圖做到循序漸進(jìn),理論與實(shí)踐并重,共性與個(gè)性兼顧,將嵌入式系統(tǒng)的理論知識(shí)和基于ARM CortexM4內(nèi)核的STM32F407微控制器的實(shí)際開(kāi)發(fā)相結(jié)合。 全書(shū)共18章,劃分為以下三篇。 第一篇(第1~3章)為系統(tǒng)平臺(tái)。第1章介紹了嵌入式系統(tǒng)定義、ARM內(nèi)核以及基于ARM CortexM4內(nèi)核的STM32微控制器; 第2章對(duì)STM32F407微控制器和開(kāi)發(fā)板硬件平臺(tái)各模塊進(jìn)行詳細(xì)介紹; 第3章介紹STM32軟件環(huán)境配置與使用入門。 第二篇(第4~10章)為基本外設(shè),分別對(duì)STM32嵌入式系統(tǒng)最常用外設(shè)模塊進(jìn)行介紹。第4章講解通用輸入輸出端口; 第5章講解LED流水燈與SysTick定時(shí)器; 第6章講解按鍵輸入與蜂鳴器; 第7章講解FSMC總線與雙顯示終端; 第8章講解中斷系統(tǒng)與基本應(yīng)用; 第9章講解基本定時(shí)器; 第10章講解通用定時(shí)器。 第三篇(第11~18章)為擴(kuò)展外設(shè),分別對(duì)STM32嵌入式系統(tǒng)高級(jí)外設(shè)模塊進(jìn)行介紹。第11章講解串行通信接口USART; 第12章講解SPI與字庫(kù)存儲(chǔ); 第13章講解I2C接口與EEPROM; 第14章講解模/數(shù)轉(zhuǎn)換與光照傳感器; 第15章講解直接存儲(chǔ)器訪問(wèn); 第16章講解數(shù)/模轉(zhuǎn)換器; 第17章講解位帶操作與溫濕度傳感器; 第18章講解RTC與藍(lán)牙通信。 無(wú)論是基本外設(shè),還是擴(kuò)展外設(shè),從第4章開(kāi)始到第18章結(jié)束,每一章先對(duì)理論知識(shí)進(jìn)行講解,然后引入項(xiàng)目實(shí)例,給出項(xiàng)目實(shí)施具體步驟,項(xiàng)目可以在課堂完成。整個(gè)教學(xué)理論與實(shí)踐一體,學(xué)中做,做中學(xué)。 3. 本書(shū)特色 (1) 以學(xué)生認(rèn)知過(guò)程為導(dǎo)向,設(shè)計(jì)本書(shū)邏輯,組織章節(jié)內(nèi)容。先硬件后軟件,由淺入深,循序漸進(jìn); 遵循理論夠用,重在實(shí)踐,容易上手的原則,培養(yǎng)學(xué)習(xí)興趣,激發(fā)學(xué)習(xí)動(dòng)力。 (2) 項(xiàng)目引領(lǐng),任務(wù)驅(qū)動(dòng),教學(xué)做一體,注重學(xué)生工程實(shí)踐能力的培養(yǎng)。對(duì)于每個(gè)典型外設(shè)模塊,在簡(jiǎn)明扼要地闡述原理的基礎(chǔ)上,圍繞其應(yīng)用,以案例的形式討論其設(shè)計(jì)精髓,并在書(shū)中給出了完整的工程案例。 (3) 傳承51經(jīng)典,發(fā)揚(yáng)ARM長(zhǎng)處,助推MCU升級(jí)。ARM嵌入式系統(tǒng)實(shí)際上是8位單片機(jī)的升級(jí)擴(kuò)展,但是其高性能必然對(duì)應(yīng)高復(fù)雜度。借助8位單片機(jī)共性的理念、方法和案例,有助于提升讀者學(xué)習(xí)興趣,使其輕松入門嵌入式開(kāi)發(fā)。 4. 配套資源 不聞不若聞之,聞之不若見(jiàn)之,見(jiàn)之不若知之,知之不若行之。學(xué)習(xí)新東西時(shí),沒(méi)有什么比實(shí)踐更重要的了!為此,作者從硬件和軟件兩個(gè)方面為讀者創(chuàng)建了良好的實(shí)踐環(huán)境。 在硬件方面,本書(shū)設(shè)計(jì)了如下模塊: ①板載CMSISDAP調(diào)試器; ②使用FSMC總線同時(shí)連接數(shù)碼管和TFT LCD; ③獨(dú)立按鍵/矩陣鍵盤切換電路; ④使用片外SPI Flash芯片存儲(chǔ)中文字庫(kù)。讀者可直接購(gòu)買本書(shū)配套開(kāi)發(fā)板,也可以將本書(shū)項(xiàng)目移植到已有開(kāi)發(fā)板,還可以自主設(shè)計(jì)開(kāi)發(fā)板。 在軟件方面,本書(shū)提供了配套實(shí)例的程序代碼,便于讀者開(kāi)發(fā)驗(yàn)證。此外,本書(shū)還提供了教學(xué)課件、教學(xué)大綱、實(shí)驗(yàn)素材等教學(xué)資源。 5. 致謝 在本書(shū)的撰寫過(guò)程中參閱了許多資料,在此對(duì)所參考書(shū)籍的作者表示誠(chéng)摯的感謝。本書(shū)在編寫過(guò)程中引用了互聯(lián)網(wǎng)上最新資訊及報(bào)道,在此向原作者和刊發(fā)機(jī)構(gòu)表示真摯的謝意,并對(duì)不能一一注明來(lái)源深表歉意。對(duì)于收集到的沒(méi)有標(biāo)明出處或找不到出處的共享資料,以及一些進(jìn)行加工、修改后納入本書(shū)的資料,在此鄭重聲明,本書(shū)內(nèi)容僅用于教學(xué),其著作權(quán)屬于原作者,并向他們表示致敬和感謝。 在本書(shū)的編寫過(guò)程中,作者得到了家人的理解和幫助,并且一直得到清華大學(xué)出版社盛東亮老師和鐘志芳老師的關(guān)心和大力支持,清華大學(xué)出版社的工作人員也付出了辛勤的勞動(dòng),在此謹(jǐn)向支持和關(guān)心本書(shū)編著的家人、同仁和朋友一并致謝。 由于嵌入式技術(shù)發(fā)展日新月異,加之作者水平有限,書(shū)中難免有疏漏和不足之處,懇請(qǐng)廣大讀者批評(píng)指正。如果讀者對(duì)本書(shū)有任何意見(jiàn)、建議和想法,或希望獲取本書(shū)配套開(kāi)發(fā)板的更多技術(shù)支持,請(qǐng)與作者聯(lián)系。 作者2024年2月 黃克亞蘇州大學(xué)副教授、軟件設(shè)計(jì)師、碩士生導(dǎo)師,主要從事智能控制、嵌入式系統(tǒng)開(kāi)發(fā)等領(lǐng)域的教學(xué)和科研工作。長(zhǎng)期講授電工電子技術(shù)單片機(jī)原理與控制技術(shù)微機(jī)原理及應(yīng)用嵌入式系統(tǒng)開(kāi)發(fā)與實(shí)踐傳感器應(yīng)用技術(shù)等課程。近年來(lái)主持省級(jí)課題2項(xiàng),獲授權(quán)發(fā)明專利2項(xiàng),登記軟件著作權(quán)4項(xiàng),發(fā)表SCI/EI/中文核心論文12篇。指導(dǎo)學(xué)生獲全國(guó)軟件和信息技術(shù)專業(yè)人才大賽全國(guó)總決賽二等獎(jiǎng)2項(xiàng)、全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽江蘇省賽區(qū)二等獎(jiǎng)2項(xiàng)、江蘇省本?苾(yōu)秀畢業(yè)設(shè)計(jì)(論文)三等獎(jiǎng)1項(xiàng)。 第一篇系 統(tǒng) 平 臺(tái) 第1章ARM Cortex-M4嵌入式系統(tǒng) 1.1嵌入式系統(tǒng)概述 1.1.1什么是嵌入式系統(tǒng) 1.1.2嵌入式系統(tǒng)和通用計(jì)算機(jī)比較 1.1.3嵌入式系統(tǒng)的特點(diǎn) 1.1.4嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 1.1.5嵌入式系統(tǒng)范例 1.2嵌入式系統(tǒng)的硬件 1.2.1嵌入式處理器的分類 1.2.2嵌入式處理器的技術(shù)指標(biāo) 1.2.3嵌入式存儲(chǔ)器 1.2.4嵌入式I/O設(shè)備 1.2.5嵌入式I/O接口 1.3ARM Cortex-M4 處理器 1.3.1ARM公司 1.3.2ARM處理器 1.4STM32微控制器 1.4.1從ARM Cortex-M內(nèi)核到基于ARM Cortex-M的MCU 1.4.2STM32微控制器產(chǎn)品線 1.4.3STM32微控制器命名規(guī)則 1.5嵌入式系統(tǒng)的軟件 1.5.1無(wú)操作系統(tǒng)的嵌入式軟件 1.5.2帶操作系統(tǒng)的嵌入式軟件 1.5.3典型嵌入式操作系統(tǒng) 1.5.4軟件結(jié)構(gòu)選擇建議 本章小結(jié) 思考拓展 第2章STM32F407與實(shí)驗(yàn)平臺(tái) 2.1STM32F407微控制器 2.1.1STM32F407/STM32F417系列 2.1.2STM32F407功能特性 2.1.3STM32F407內(nèi)部結(jié)構(gòu) 2.1.4STM32F407存儲(chǔ)器映射 2.1.5STM32F407時(shí)鐘系統(tǒng) 2.1.6STM32F407引腳 2.2開(kāi)發(fā)板總體概況 2.2.1開(kāi)發(fā)板設(shè)計(jì)背景 2.2.2開(kāi)發(fā)板總體介紹 2.3電源電路 2.3.1電源電路原理圖 2.3.2電源電路工作原理 2.4核心板電路 2.4.1芯片電源電路 2.4.2CPU濾波電路 2.4.3外接晶振電路 2.4.4備用電源電路 2.4.5復(fù)位電路 2.4.6啟動(dòng)設(shè)置電路 2.5I/O模塊電路 2.5.1LED模塊 2.5.2按鍵模塊 2.5.3顯示模塊 2.5.4蜂鳴器模塊 2.6擴(kuò)展模塊電路 2.6.1溫濕度傳感器 2.6.2光照傳感器 2.6.3A/D采樣模塊 2.6.4EEPROM 2.6.5Flash存儲(chǔ)器 2.6.6波形發(fā)生器 2.6.7藍(lán)牙模塊 2.6.8I/O引腳外接模塊 2.7CMSIS-DAP調(diào)試器 本章小結(jié) 思考拓展 第3章軟件環(huán)境配置與使用入門 3.1STM32開(kāi)發(fā)方式 3.1.1STM32Snippets庫(kù) 3.1.2標(biāo)準(zhǔn)外設(shè)庫(kù) 3.1.3STM32CubeMX HAL庫(kù) 3.1.4STM32CubeMX LL庫(kù) 3.1.5開(kāi)發(fā)方式比較與選擇 3.2軟件資源安裝與配置 3.2.1JRE安裝 3.2.2STM32CubeMX安裝 3.2.3HAL固件包安裝 3.2.4MDK-ARM安裝 3.2.5器件包安裝 3.2.6MDK-ARM注冊(cè) 3.2.7軟件安裝總結(jié) 3.3基于STM32CubeMX的HAL開(kāi)發(fā)方式 3.3.1STM32CubeMX生成初始化代碼 3.3.2MDK-ARM集成開(kāi)發(fā) 3.4CMSIS-DAP調(diào)試器使用 3.4.1調(diào)試器連接與驅(qū)動(dòng)安裝 3.4.2調(diào)試選項(xiàng)設(shè)置與程序下載 3.5開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)編譯器優(yōu)化與volatile關(guān)鍵字 3.5.1編譯器優(yōu)化 3.5.2volatile關(guān)鍵字 本章小結(jié) 思考拓展 第二篇基 本 外 設(shè) 第4章通用輸入輸出端口 4.1GPIO概述及引腳命名 4.2GPIO內(nèi)部結(jié)構(gòu) 4.2.1輸入驅(qū)動(dòng)器 4.2.2輸出驅(qū)動(dòng)器 4.3GPIO工作模式 4.3.1輸入浮空 4.3.2輸入上拉 4.3.3輸入下拉 4.3.4模擬輸入 4.3.5開(kāi)漏輸出 4.3.6開(kāi)漏復(fù)用輸出 4.3.7推挽式輸出 4.3.8推挽式復(fù)用輸出 4.3.9工作模式選擇 4.4GPIO輸出速度 4.5I/O引腳復(fù)用及映射 4.6GPIO控制寄存器 4.7GPIO控制寄存器配置實(shí)例 4.8寄存器版LED燈閃爍工程 4.8.1創(chuàng)建寄存器版工程模板 4.8.2LED燈閃爍程序設(shè)計(jì) 4.9開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)MDK中的C語(yǔ)言數(shù)據(jù)類型 本章小結(jié) 思考拓展 第5章LED流水燈與SysTick定時(shí)器 5.1GPIO輸出庫(kù)函數(shù) 5.1.1GPIO外設(shè)時(shí)鐘使能 5.1.2函數(shù)HAL_GPIO_Init() 5.1.3函數(shù)HAL_GPIO_DeInit() 5.1.4函數(shù)HAL_GPIO_WritePin() 5.1.5函數(shù)HAL_GPIO_TogglePin() 5.1.6輸出寄存器訪問(wèn) 5.2LED流水燈控制 5.3SysTick定時(shí)器 5.3.1SysTick定時(shí)器概述 5.3.2SysTick定時(shí)器寄存器 5.3.3延時(shí)函數(shù)HAL_Delay() 5.3.4HAL_Delay()延時(shí)實(shí)例 5.3.5微秒級(jí)延時(shí)的實(shí)現(xiàn) 5.3.6綜合延時(shí)程序?qū)嵗?/p> 5.4開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)C語(yǔ)言中的位運(yùn)算 5.4.1位運(yùn)算符和位運(yùn)算 5.4.2嵌入式系統(tǒng)位運(yùn)算實(shí)例 本章小結(jié) 思考拓展 第6章按鍵輸入與蜂鳴器 6.1GPIO輸入庫(kù)函數(shù) 6.1.1函數(shù)HAL_GPIO_ReadPin() 6.1.2輸入數(shù)據(jù)寄存器訪問(wèn) 6.1.3函數(shù)HAL_GPIO_LockPin() 6.2獨(dú)立按鍵控制蜂鳴器 6.2.1電路原理 6.2.2按鍵消抖 6.2.3項(xiàng)目實(shí)施 6.3矩陣鍵盤掃描 6.3.1矩陣鍵盤電路 6.3.2矩陣鍵盤掃描原理 6.3.3矩陣鍵盤實(shí)例 6.4開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)復(fù)合數(shù)據(jù)類型 6.4.1結(jié)構(gòu)體數(shù)據(jù)類型 6.4.2枚舉數(shù)據(jù)類型 本章小結(jié) 思考拓展 第7章FSMC總線與雙顯示終端 7.1FSMC總線 7.2硬件系統(tǒng)設(shè)計(jì) 7.2.1硬件結(jié)構(gòu)框圖 7.2.2FSMC與TFT LCD連接 7.2.3FSMC與數(shù)碼管連接 7.3數(shù)碼管接口技術(shù) 7.3.1數(shù)碼管工作原理 7.3.2數(shù)碼管編碼方式 7.3.3數(shù)碼管顯示方式 7.4TFT LCD驅(qū)動(dòng) 7.4.1ILI9341顏色體系 7.4.2ILI9341常用命令 7.5項(xiàng)目實(shí)例 7.5.1FSMC讀寫時(shí)序 7.5.2FSMC初始化 7.5.3數(shù)碼管動(dòng)態(tài)顯示學(xué)號(hào) 7.5.4數(shù)碼管動(dòng)態(tài)顯示時(shí)間 7.5.5LCD驅(qū)動(dòng)程序 7.5.6LCD英文顯示 7.5.7LCD中文信息顯示 7.6開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)C語(yǔ)言指針及其類型轉(zhuǎn)換 7.6.1指針基本概念 7.6.2指針類型轉(zhuǎn)換 本章小結(jié) 思考拓展 第8章中斷系統(tǒng)與基本應(yīng)用 8.1中斷的基本概念 8.1.1中斷的定義 8.1.2中斷的優(yōu)點(diǎn)與應(yīng)用 8.1.3中斷源與中斷屏蔽 8.1.4中斷處理過(guò)程 8.1.5中斷優(yōu)先級(jí)與中斷嵌套 8.2STM32F407中斷系統(tǒng) 8.2.1嵌套向量中斷控制器 8.2.2STM32F407中斷優(yōu)先級(jí) 8.2.3STM32F407中斷向量表 8.2.4STM32F407中斷服務(wù)函數(shù) 8.3STM32F407外部中斷/事件控制器EXTI 8.3.1EXTI內(nèi)部結(jié)構(gòu) 8.3.2EXTI工作原理 8.3.3EXTI主要特性 8.4STM32F407外部中斷HAL庫(kù)函數(shù) 8.4.1STM32F407的NVIC相關(guān)庫(kù)函數(shù) 8.4.2STM32F407的EXTI相關(guān)庫(kù)函數(shù) 8.5EXTI項(xiàng)目實(shí)例 8.5.1項(xiàng)目分析 8.5.2項(xiàng)目實(shí)施 8.5.3ISR框架總結(jié) 8.6開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)前/后臺(tái)嵌入式軟件架構(gòu) 本章小結(jié) 思考拓展 第9章基本定時(shí)器 9.1STM32F407定時(shí)器概述 9.2基本定時(shí)器 9.2.1基本定時(shí)器簡(jiǎn)介 9.2.2基本定時(shí)器的主要特性 9.2.3基本定時(shí)器的功能 9.2.4基本定時(shí)器寄存器 9.3基本定時(shí)器的HAL驅(qū)動(dòng) 9.3.1基本定時(shí)器主要HAL驅(qū)動(dòng)函數(shù) 9.3.2定時(shí)器通用操作宏函數(shù) 9.3.3定時(shí)器中斷處理函數(shù) 9.4項(xiàng)目實(shí)例 9.4.1數(shù)字電子鐘 9.4.2定時(shí)器刷新數(shù)碼管 9.4.3定時(shí)器矩陣鍵盤掃描 本章小結(jié) 思考拓展 第10章通用定時(shí)器 10.1通用定時(shí)器功能概述 10.1.1通用定時(shí)器主要特性 10.1.2通用定時(shí)器功能描述 10.2通用定時(shí)器工作模式與HAL驅(qū)動(dòng) 10.2.1PWM輸出模式 10.2.2輸出比較模式 10.2.3輸入捕獲模式 10.2.4PWM輸入模式 10.3通用定時(shí)器寄存器 10.4通用定時(shí)器中斷事件和回調(diào)函數(shù) 10.5項(xiàng)目實(shí)例 10.5.1PWM呼吸燈 10.5.2輸出比較模式輸出方波信號(hào) 10.5.3輸入捕獲模式測(cè)量脈沖頻率 10.5.4PWM波頻率和占空比測(cè)量 本章小結(jié) 思考拓展 第三篇擴(kuò) 展 外 設(shè) 第11章串行通信接口USART 11.1數(shù)據(jù)通信基本概念 11.1.1并行通信與串行通信 11.1.2異步通信與同步通信 11.1.3串行通信的制式 11.1.4串行通信的校驗(yàn) 11.1.5串行通信的波特率 11.2USART工作原理 11.2.1USART介紹 11.2.2USART功能特性 11.2.3UART通信協(xié)議 11.2.4USART中斷 11.2.5USART相關(guān)寄存器 11.3UART的HAL驅(qū)動(dòng) 11.3.1UART常用功能函數(shù) 11.3.2UART常用的宏函數(shù) 11.3.3UART中斷事件與回調(diào)函數(shù) 11.4串口通信項(xiàng)目實(shí)例 11.4.1項(xiàng)目分析 11.4.2微控制器端程序設(shè)計(jì) 11.4.3上位機(jī)程序設(shè)計(jì) 11.4.4串口通信調(diào)試 11.5開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)printf()重定向函數(shù) 11.5.1重寫fputc()函數(shù) 11.5.2選擇使用Micro LIB 11.5.3printf()串口打印信息 本章小結(jié) 思考拓展 第12章SPI與字庫(kù)存儲(chǔ) 12.1SPI通信原理 12.1.1SPI 12.1.2SPI互連 12.2STM32F407的SPI工作原理 12.2.1SPI主要特征 12.2.2SPI內(nèi)部結(jié)構(gòu) 12.2.3時(shí)鐘信號(hào)的相位和極性 12.2.4數(shù)據(jù)幀格式 12.3Flash存儲(chǔ)芯片W25Q128 12.3.1硬件接口和連接 12.3.2存儲(chǔ)空間劃分 12.3.3數(shù)據(jù)讀寫原則 12.3.4存儲(chǔ)器操作指令 12.4SPI的HAL庫(kù)驅(qū)動(dòng) 12.4.1SPI寄存器操作的宏函數(shù) 12.4.2SPI初始化和阻塞式數(shù)據(jù)傳輸 12.4.3中斷和DMA方式數(shù)據(jù)傳輸 12.5SPI Flash讀寫測(cè)試 12.5.1項(xiàng)目分析 12.5.2項(xiàng)目實(shí)施 12.6中文字庫(kù)存儲(chǔ) 12.6.1需求分析 12.6.2字庫(kù)生成與合并 12.6.3字庫(kù)存儲(chǔ) 12.6.4LCD中文驅(qū)動(dòng)程序 12.7基于SPI閃存的中文顯示 12.8開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)條件編譯 12.8.1命令形式 12.8.2應(yīng)用示例 本章小結(jié) 思考拓展 第13章I2C接口與EEPROM 13.1I2C通信原理 13.1.1I2C串行總線概述 13.1.2I2C總線的數(shù)據(jù)傳送 13.2STM32F407的I2C接口 13.2.1STM32F407的I2C主要特性 13.2.2STM32F407的I2C內(nèi)部結(jié)構(gòu) 13.2.3STM32F407的I2C工作模式 13.3I2C接口的HAL庫(kù)驅(qū)動(dòng) 13.3.1I2C接口的初始化 13.3.2阻塞式數(shù)據(jù)傳輸 13.3.3中斷方式數(shù)據(jù)傳輸 13.3.4DMA方式數(shù)據(jù)傳輸 13.4EEPROM存儲(chǔ)芯片24C02 13.4.1芯片概述與硬件連接 13.4.2接口與通信協(xié)議 13.5EEPROM存儲(chǔ)開(kāi)機(jī)密碼項(xiàng)目 13.5.1項(xiàng)目分析 13.5.2項(xiàng)目實(shí)施 本章小結(jié) 思考拓展 第14章模/數(shù)轉(zhuǎn)換與光照傳感器 14.1ADC概述 14.1.1ADC基本原理 14.1.2ADC性能參數(shù) 14.1.3ADC主要類型 14.2STM32F407的ADC工作原理 14.2.1主要特征 14.2.2內(nèi)部結(jié)構(gòu) 14.2.3通道及分組 14.2.4時(shí)序圖 14.2.5數(shù)據(jù)對(duì)齊 14.2.6校準(zhǔn) 14.2.7轉(zhuǎn)換時(shí)間 14.2.8轉(zhuǎn)換模式 14.2.9外部觸發(fā)轉(zhuǎn)換和觸發(fā)極性 14.2.10中斷和DMA請(qǐng)求 14.2.11多重ADC模式 14.3ADC的HAL庫(kù)驅(qū)動(dòng) 14.3.1規(guī)則通道驅(qū)動(dòng) 14.3.2注入通道驅(qū)動(dòng) 14.3.3多重ADC驅(qū)動(dòng) 14.4項(xiàng)目實(shí)例 14.4.1多通道輪詢方式模擬信號(hào)采集 14.4.2光照傳感器模擬與數(shù)字同步控制 本章小結(jié) 思考拓展 第15章直接存儲(chǔ)器訪問(wèn) 15.1DMA的基本概念 15.1.1DMA的由來(lái) 15.1.2DMA的定義 15.1.3DMA的優(yōu)點(diǎn) 15.2STM32F407的DMA工作原理 15.2.1DMA簡(jiǎn)介 15.2.2DMA通道選擇 15.2.3DMA主要特性 15.2.4DMA傳輸屬性 15.3DMA的HAL庫(kù)驅(qū)動(dòng) 15.3.1DMA的HAL函數(shù)概述 15.3.2DMA傳輸初始化配置 15.3.3啟動(dòng)DMA數(shù)據(jù)傳輸 15.3.4DMA中斷 15.4項(xiàng)目實(shí)例 15.4.1USART接口DMA傳輸 15.4.2定時(shí)器觸發(fā)DMA傳輸多通道模擬量采集 15.4.3三重ADC同步轉(zhuǎn)換DMA傳輸 15.5開(kāi)發(fā)經(jīng)驗(yàn)小結(jié)輪詢、中斷、DMA 15.5.1輪詢 15.5.2中斷 15.5.3DMA 本章小結(jié) 思考拓展 第16章數(shù)/模轉(zhuǎn)換器 16.1DAC概述 16.1.1DAC基本原理 16.1.2DAC性能參數(shù) 16.2STM32F407的DAC工作原理 16.2.1DAC結(jié)構(gòu)與特性 16.2.2DAC功能說(shuō)明 16.3DAC的HAL庫(kù)驅(qū)動(dòng) 16.3.1DAC驅(qū)動(dòng)宏函數(shù) 16.3.2DAC驅(qū)動(dòng)功能函數(shù) 16.4項(xiàng)目實(shí)例 16.4.1軟件觸發(fā)D/A轉(zhuǎn)換 16.4.2三角波輸出 16.4.3使用DMA輸出正弦波信號(hào) 本章小結(jié) 思考拓展 第17章位帶操作與溫濕度傳感器 17.1STM32位帶操作 17.1.1位帶介紹 17.1.2位帶區(qū)與位帶別名區(qū)地址轉(zhuǎn)換 17.1.3位帶操作宏定義 17.2溫濕度傳感器DHT11 17.2.1DHT11功能說(shuō)明 17.2.2DHT11單總線通信協(xié)議 17.3溫濕度實(shí)時(shí)監(jiān)測(cè) 17.3.1項(xiàng)目分析 17.3.2項(xiàng)目實(shí)施 本章小結(jié) 思考拓展 第18章RTC與藍(lán)牙通信 18.1RTC概述 18.1.1RTC功能 18.1.2RTC工作原理 18.1.3RTC的中斷和復(fù)用引腳 18.2RTC的HAL庫(kù)驅(qū)動(dòng) 18.2.1RTC的HAL基礎(chǔ)驅(qū)動(dòng)程序 18.2.2周期喚醒相關(guān)HAL函數(shù) 18.2.3鬧鐘相關(guān)HAL函數(shù) 18.3備份寄存器 18.4RTC日歷和鬧鐘項(xiàng)目 18.4.1項(xiàng)目分析 18.4.2項(xiàng)目實(shí)施 18.5藍(lán)牙模塊通信 18.5.1藍(lán)牙通信概述 18.5.2藍(lán)牙透明傳輸原理 18.6無(wú)線時(shí)間同步電子萬(wàn)年歷 18.6.1項(xiàng)目分析 18.6.2項(xiàng)目實(shí)施 本章小結(jié) 思考拓展 附錄AASCII碼表 附錄B運(yùn)算符和結(jié)合性關(guān)系表 附錄CSTM32F407微控制器引腳定義表 參考文獻(xiàn)
你還可能感興趣
我要評(píng)論
|