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