2020年1月,作者出版了《ARM CortexM3嵌入式原理及應(yīng)用基于STM32F103微控制器》。該書自出版以來,被國內(nèi)百余所高校選為教材,年銷萬余冊,并先后榮獲清華大學(xué)出版社暢銷圖書、科技類最受讀者歡迎圖書和蘇州大學(xué)精品教材等榮譽稱號,獲得讀者的普遍好評,令作者深受鼓舞,決定再編著一部既注重入門,又兼顧提高的嵌入式系統(tǒng)項目式教材。
1. 出版背景
青山遮不住,畢竟東流去!雖然我們已經(jīng)積累了大量的經(jīng)典的8位單片機(如MCS51)、16位單片機(如MSP430)的技術(shù)資料,但是復(fù)雜的指令、較低的主頻、有限的存儲空間、極少的片上外設(shè),使其在面對復(fù)雜應(yīng)用時,捉襟見肘,難以勝任。8位、16位單片機的應(yīng)用不會就此結(jié)束,32位處理器時代已經(jīng)到來。
在這個大環(huán)境下,ARM CortexM處理器轟轟烈烈地誕生了!它性能更強、功耗更低、易于使用。許多曾經(jīng)只能求助于高級32位處理器或DSP的軟件設(shè)計,都能在ARM CortexM處理器上跑得很快。按照ARM公司的經(jīng)營策略,公司只負責(zé)設(shè)計處理器IP核,而不生產(chǎn)和銷售具體的處理器芯片。在諸多半導(dǎo)體制造商中,意法半導(dǎo)體(ST Microelectronics)公司較早在市場上推出基于ARM CortexM內(nèi)核的微控制器產(chǎn)品,其根據(jù)ARM CortexM內(nèi)核設(shè)計生產(chǎn)的STM32微控制器充分發(fā)揮了低成本、低功耗、高性價比的優(yōu)勢,以系列化的方式推出,方便用戶選擇,受到了廣泛的好評。在眾多STM32微控制器產(chǎn)品中,基于ARM CortexM3內(nèi)核的STM32F103微控制器和基于ARM CortexM4內(nèi)核的STM32F407微控制器較為用戶所了解,市場占有率很高,很多嵌入式教材也是以二者之一為藍本進行講解的。相比于STM32F103微控制器,STM32F407在內(nèi)核、資源、外設(shè)、性能、功耗等多方面均有較大增強,而二者價格相差并不大,所以本書選擇以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ā)的技術(shù)方向,也是STM32官方主推的開發(fā)方式。所以,本書介紹的軟件設(shè)計是基于圖形化配置工具STM32CubeMX的HAL庫開發(fā),這是當(dāng)前技術(shù)主流,具有一定的前瞻性。
2. 內(nèi)容簡介
針對上述情況,作者根據(jù)多年的嵌入式系統(tǒng)教學(xué)和開發(fā)經(jīng)驗編寫了本書,試圖做到循序漸進,理論與實踐并重,共性與個性兼顧,將嵌入式系統(tǒng)的理論知識和基于ARM CortexM4內(nèi)核的STM32F407微控制器的實際開發(fā)相結(jié)合。
全書共18章,劃分為以下三篇。
第一篇(第1~3章)為系統(tǒng)平臺。第1章介紹了嵌入式系統(tǒng)定義、ARM內(nèi)核以及基于ARM CortexM4內(nèi)核的STM32微控制器; 第2章對STM32F407微控制器和開發(fā)板硬件平臺各模塊進行詳細介紹; 第3章介紹STM32軟件環(huán)境配置與使用入門。
第二篇(第4~10章)為基本外設(shè),分別對STM32嵌入式系統(tǒng)最常用外設(shè)模塊進行介紹。第4章講解通用輸入輸出端口; 第5章講解LED流水燈與SysTick定時器; 第6章講解按鍵輸入與蜂鳴器; 第7章講解FSMC總線與雙顯示終端; 第8章講解中斷系統(tǒng)與基本應(yīng)用; 第9章講解基本定時器; 第10章講解通用定時器。
第三篇(第11~18章)為擴展外設(shè),分別對STM32嵌入式系統(tǒng)高級外設(shè)模塊進行介紹。第11章講解串行通信接口USART; 第12章講解SPI與字庫存儲; 第13章講解I2C接口與EEPROM; 第14章講解模/數(shù)轉(zhuǎn)換與光照傳感器; 第15章講解直接存儲器訪問; 第16章講解數(shù)/模轉(zhuǎn)換器; 第17章講解位帶操作與溫濕度傳感器; 第18章講解RTC與藍牙通信。
無論是基本外設(shè),還是擴展外設(shè),從第4章開始到第18章結(jié)束,每一章先對理論知識進行講解,然后引入項目實例,給出項目實施具體步驟,項目可以在課堂完成。整個教學(xué)理論與實踐一體,學(xué)中做,做中學(xué)。
3. 本書特色
(1) 以學(xué)生認知過程為導(dǎo)向,設(shè)計本書邏輯,組織章節(jié)內(nèi)容。先硬件后軟件,由淺入深,循序漸進; 遵循理論夠用,重在實踐,容易上手的原則,培養(yǎng)學(xué)習(xí)興趣,激發(fā)學(xué)習(xí)動力。
(2) 項目引領(lǐng),任務(wù)驅(qū)動,教學(xué)做一體,注重學(xué)生工程實踐能力的培養(yǎng)。對于每個典型外設(shè)模塊,在簡明扼要地闡述原理的基礎(chǔ)上,圍繞其應(yīng)用,以案例的形式討論其設(shè)計精髓,并在書中給出了完整的工程案例。
(3) 傳承51經(jīng)典,發(fā)揚ARM長處,助推MCU升級。ARM嵌入式系統(tǒng)實際上是8位單片機的升級擴展,但是其高性能必然對應(yīng)高復(fù)雜度。借助8位單片機共性的理念、方法和案例,有助于提升讀者學(xué)習(xí)興趣,使其輕松入門嵌入式開發(fā)。
4. 配套資源
不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之。學(xué)習(xí)新東西時,沒有什么比實踐更重要的了!為此,作者從硬件和軟件兩個方面為讀者創(chuàng)建了良好的實踐環(huán)境。
在硬件方面,本書設(shè)計了如下模塊: ①板載CMSISDAP調(diào)試器; ②使用FSMC總線同時連接數(shù)碼管和TFT LCD; ③獨立按鍵/矩陣鍵盤切換電路; ④使用片外SPI Flash芯片存儲中文字庫。讀者可直接購買本書配套開發(fā)板,也可以將本書項目移植到已有開發(fā)板,還可以自主設(shè)計開發(fā)板。
在軟件方面,本書提供了配套實例的程序代碼,便于讀者開發(fā)驗證。此外,本書還提供了教學(xué)課件、教學(xué)大綱、實驗素材等教學(xué)資源。
5. 致謝
在本書的撰寫過程中參閱了許多資料,在此對所參考書籍的作者表示誠摯的感謝。本書在編寫過程中引用了互聯(lián)網(wǎng)上最新資訊及報道,在此向原作者和刊發(fā)機構(gòu)表示真摯的謝意,并對不能一一注明來源深表歉意。對于收集到的沒有標明出處或找不到出處的共享資料,以及一些進行加工、修改后納入本書的資料,在此鄭重聲明,本書內(nèi)容僅用于教學(xué),其著作權(quán)屬于原作者,并向他們表示致敬和感謝。
在本書的編寫過程中,作者得到了家人的理解和幫助,并且一直得到清華大學(xué)出版社盛東亮老師和鐘志芳老師的關(guān)心和大力支持,清華大學(xué)出版社的工作人員也付出了辛勤的勞動,在此謹向支持和關(guān)心本書編著的家人、同仁和朋友一并致謝。
由于嵌入式技術(shù)發(fā)展日新月異,加之作者水平有限,書中難免有疏漏和不足之處,懇請廣大讀者批評指正。如果讀者對本書有任何意見、建議和想法,或希望獲取本書配套開發(fā)板的更多技術(shù)支持,請與作者聯(lián)系。
作者2024年2月
第一篇系 統(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)的應(yīng)用領(lǐng)域
1.1.5嵌入式系統(tǒng)范例
1.2嵌入式系統(tǒng)的硬件
1.2.1嵌入式處理器的分類
1.2.2嵌入式處理器的技術(shù)指標
1.2.3嵌入式存儲器
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無操作系統(tǒng)的嵌入式軟件
1.5.2帶操作系統(tǒng)的嵌入式軟件
1.5.3典型嵌入式操作系統(tǒng)
1.5.4軟件結(jié)構(gòu)選擇建議
本章小結(jié)
思考拓展
第2章STM32F407與實驗平臺
2.1STM32F407微控制器
2.1.1STM32F407/STM32F417系列
2.1.2STM32F407功能特性
2.1.3STM32F407內(nèi)部結(jié)構(gòu)
2.1.4STM32F407存儲器映射
2.1.5STM32F407時鐘系統(tǒng)
2.1.6STM32F407引腳
2.2開發(fā)板總體概況
2.2.1開發(fā)板設(shè)計背景
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復(fù)位電路
2.4.6啟動設(shè)置電路
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調(diào)試器
本章小結(jié)
思考拓展
第3章軟件環(huán)境配置與使用入門
3.1STM32開發(fā)方式
3.1.1STM32Snippets庫
3.1.2標準外設(shè)庫
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軟件安裝總結(jié)
3.3基于STM32CubeMX的HAL開發(fā)方式
3.3.1STM32CubeMX生成初始化代碼
3.3.2MDK-ARM集成開發(fā)
3.4CMSIS-DAP調(diào)試器使用
3.4.1調(diào)試器連接與驅(qū)動安裝
3.4.2調(diào)試選項設(shè)置與程序下載
3.5開發(fā)經(jīng)驗小結(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ū)動器
4.2.2輸出驅(qū)動器
4.3GPIO工作模式
4.3.1輸入浮空
4.3.2輸入上拉
4.3.3輸入下拉
4.3.4模擬輸入
4.3.5開漏輸出
4.3.6開漏復(fù)用輸出
4.3.7推挽式輸出
4.3.8推挽式復(fù)用輸出
4.3.9工作模式選擇
4.4GPIO輸出速度
4.5I/O引腳復(fù)用及映射
4.6GPIO控制寄存器
4.7GPIO控制寄存器配置實例
4.8寄存器版LED燈閃爍工程
4.8.1創(chuàng)建寄存器版工程模板
4.8.2LED燈閃爍程序設(shè)計
4.9開發(fā)經(jīng)驗小結(jié)MDK中的C語言數(shù)據(jù)類型
本章小結(jié)
思考拓展
第5章LED流水燈與SysTick定時器
5.1GPIO輸出庫函數(shù)
5.1.1GPIO外設(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輸出寄存器訪問
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綜合延時程序?qū)嵗?/p>
5.4開發(fā)經(jīng)驗小結(jié)C語言中的位運算
5.4.1位運算符和位運算
5.4.2嵌入式系統(tǒng)位運算實例
本章小結(jié)
思考拓展
第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ā)經(jīng)驗小結(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è)計
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ū)動
7.4.1ILI9341顏色體系
7.4.2ILI9341常用命令
7.5項目實例
7.5.1FSMC讀寫時序
7.5.2FSMC初始化
7.5.3數(shù)碼管動態(tài)顯示學(xué)號
7.5.4數(shù)碼管動態(tài)顯示時間
7.5.5LCD驅(qū)動程序
7.5.6LCD英文顯示
7.5.7LCD中文信息顯示
7.6開發(fā)經(jīng)驗小結(jié)C語言指針及其類型轉(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)點與應(yīng)用
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中斷服務(wù)函數(shù)
8.3STM32F407外部中斷/事件控制器EXTI
8.3.1EXTI內(nèi)部結(jié)構(gòu)
8.3.2EXTI工作原理
8.3.3EXTI主要特性
8.4STM32F407外部中斷HAL庫函數(shù)
8.4.1STM32F407的NVIC相關(guān)庫函數(shù)
8.4.2STM32F407的EXTI相關(guān)庫函數(shù)
8.5EXTI項目實例
8.5.1項目分析
8.5.2項目實施
8.5.3ISR框架總結(jié)
8.6開發(fā)經(jīng)驗小結(jié)前/后臺嵌入式軟件架構(gòu)
本章小結(jié)
思考拓展
第9章基本定時器
9.1STM32F407定時器概述
9.2基本定時器
9.2.1基本定時器簡介
9.2.2基本定時器的主要特性
9.2.3基本定時器的功能
9.2.4基本定時器寄存器
9.3基本定時器的HAL驅(qū)動
9.3.1基本定時器主要HAL驅(qū)動函數(shù)
9.3.2定時器通用操作宏函數(shù)
9.3.3定時器中斷處理函數(shù)
9.4項目實例
9.4.1數(shù)字電子鐘
9.4.2定時器刷新數(shù)碼管
9.4.3定時器矩陣鍵盤掃描
本章小結(jié)
思考拓展
第10章通用定時器
10.1通用定時器功能概述
10.1.1通用定時器主要特性
10.1.2通用定時器功能描述
10.2通用定時器工作模式與HAL驅(qū)動
10.2.1PWM輸出模式
10.2.2輸出比較模式
10.2.3輸入捕獲模式
10.2.4PWM輸入模式
10.3通用定時器寄存器
10.4通用定時器中斷事件和回調(diào)函數(shù)
10.5項目實例
10.5.1PWM呼吸燈
10.5.2輸出比較模式輸出方波信號
10.5.3輸入捕獲模式測量脈沖頻率
10.5.4PWM波頻率和占空比測量
本章小結(jié)
思考拓展
第三篇擴 展 外 設(shè)
第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相關(guān)寄存器
11.3UART的HAL驅(qū)動
11.3.1UART常用功能函數(shù)
11.3.2UART常用的宏函數(shù)
11.3.3UART中斷事件與回調(diào)函數(shù)
11.4串口通信項目實例
11.4.1項目分析
11.4.2微控制器端程序設(shè)計
11.4.3上位機程序設(shè)計
11.4.4串口通信調(diào)試
11.5開發(fā)經(jīng)驗小結(jié)printf()重定向函數(shù)
11.5.1重寫fputc()函數(shù)
11.5.2選擇使用Micro LIB
11.5.3printf()串口打印信息
本章小結(jié)
思考拓展
第12章SPI與字庫存儲
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時鐘信號的相位和極性
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庫驅(qū)動
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中文驅(qū)動程序
12.7基于SPI閃存的中文顯示
12.8開發(fā)經(jīng)驗小結(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庫驅(qū)動
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項目實施
本章小結(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時序圖
14.2.5數(shù)據(jù)對齊
14.2.6校準
14.2.7轉(zhuǎn)換時間
14.2.8轉(zhuǎn)換模式
14.2.9外部觸發(fā)轉(zhuǎn)換和觸發(fā)極性
14.2.10中斷和DMA請求
14.2.11多重ADC模式
14.3ADC的HAL庫驅(qū)動
14.3.1規(guī)則通道驅(qū)動
14.3.2注入通道驅(qū)動
14.3.3多重ADC驅(qū)動
14.4項目實例
14.4.1多通道輪詢方式模擬信號采集
14.4.2光照傳感器模擬與數(shù)字同步控制
本章小結(jié)
思考拓展
第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庫驅(qū)動
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同步轉(zhuǎn)換DMA傳輸
15.5開發(fā)經(jīng)驗小結(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功能說明
16.3DAC的HAL庫驅(qū)動
16.3.1DAC驅(qū)動宏函數(shù)
16.3.2DAC驅(qū)動功能函數(shù)
16.4項目實例
16.4.1軟件觸發(fā)D/A轉(zhuǎn)換
16.4.2三角波輸出
16.4.3使用DMA輸出正弦波信號
本章小結(jié)
思考拓展
第17章位帶操作與溫濕度傳感器
17.1STM32位帶操作
17.1.1位帶介紹
17.1.2位帶區(qū)與位帶別名區(qū)地址轉(zhuǎn)換
17.1.3位帶操作宏定義
17.2溫濕度傳感器DHT11
17.2.1DHT11功能說明
17.2.2DHT11單總線通信協(xié)議
17.3溫濕度實時監(jiān)測
17.3.1項目分析
17.3.2項目實施
本章小結(jié)
思考拓展
第18章RTC與藍牙通信
18.1RTC概述
18.1.1RTC功能
18.1.2RTC工作原理
18.1.3RTC的中斷和復(fù)用引腳
18.2RTC的HAL庫驅(qū)動
18.2.1RTC的HAL基礎(chǔ)驅(qū)動程序
18.2.2周期喚醒相關(guān)HAL函數(shù)
18.2.3鬧鐘相關(guān)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項目實施
本章小結(jié)
思考拓展
附錄AASCII碼表
附錄B運算符和結(jié)合性關(guān)系表
附錄CSTM32F407微控制器引腳定義表
參考文獻