《STM32單片機(jī)原理及應(yīng)用基于STM32F103C8與STM32CubeMX》基于ARM Cortex-M3內(nèi)核微控制器 STM32F103C8T6,詳細(xì)講述嵌人式控制系統(tǒng)的硬件設(shè)計(jì)與軟件開發(fā)技術(shù),主要內(nèi)容包括STM32F103微控制器、STM32F103C8T6學(xué)習(xí)平臺(tái)、LED燈控制程序設(shè)計(jì)、按鍵與中斷處理、定時(shí)器、OLED屏與溫度傳感器、串口通信與Wi-Fi模塊及機(jī)智云開發(fā)技術(shù)等。本書詳細(xì)介紹了寄存器方法和基于STM32CubeMX的HAL編程方法,其特色在于模塊化教學(xué),實(shí)例豐富,配有實(shí)例演示視頻。本書對(duì)基于STM32F1系列微控制器及機(jī)智云的教學(xué)與工程應(yīng)用,都具有較好的指導(dǎo)和參考價(jià)值。
《STM32單片機(jī)原理及應(yīng)用基于STM32F103C8與STM32CubeMX》可作為普通高等院校物聯(lián)網(wǎng)工程、電子工程、通信工程、自動(dòng)化、智能儀器、計(jì)算機(jī)工程、信息工程等相關(guān)專業(yè)的教材,也可作為嵌入式系統(tǒng)愛好者和工程開發(fā)人員的參考用書。
本書根據(jù)嵌入式系統(tǒng)與物聯(lián)網(wǎng)技術(shù)的發(fā)展趨勢(shì),結(jié)合編者多年來在嵌入式技術(shù)領(lǐng)域的教學(xué)實(shí)踐積累,按照嵌入式系統(tǒng)硬件設(shè)計(jì)模塊化與軟件設(shè)計(jì)組件化的原則,詳細(xì)闡述了基于STM32F103C8T6微控制器的硬件學(xué)習(xí)平臺(tái)及其設(shè)計(jì)方法,探討了借助于機(jī)智云平臺(tái)的物聯(lián)網(wǎng)開發(fā)技術(shù)。本書內(nèi)容理論性與實(shí)踐性并重,突出學(xué)以致用的教學(xué)理念,實(shí)例豐富,并配有視頻講解。
?精心設(shè)計(jì)硬件系統(tǒng) 按照硬件模塊化的設(shè)計(jì)思路,精心設(shè)計(jì)了基于STM32F103C8T6微控制器的通用硬件學(xué)習(xí)平臺(tái),該硬件系統(tǒng)的原理圖是物聯(lián)網(wǎng)技術(shù)的一款完整解決方案。強(qiáng)烈建議讀者自行設(shè)計(jì)制作該學(xué)習(xí)平臺(tái)(推薦使用嘉立創(chuàng)EDA),以強(qiáng)化硬件設(shè)計(jì)水平。
?工程實(shí)例完整豐富 結(jié)合硬件模塊的應(yīng)用精心組織了全部工程實(shí)例,通過各個(gè)工程實(shí)例共享程序模塊的方法,在有限的篇幅中,使全書的每個(gè)工程實(shí)例都是完整的,強(qiáng)烈建議讀者由零開始完成各個(gè)工程,以增強(qiáng)學(xué)習(xí)的樂趣。
?主流程序設(shè)計(jì)方法 細(xì)致全面地講述了寄存器程序設(shè)計(jì)方法和硬件抽象語言(HAL)程序設(shè)計(jì)方法。寄存器程序設(shè)計(jì)方法適合電子工程類專業(yè)學(xué)生學(xué)習(xí),HAL程序設(shè)計(jì)方法適合計(jì)算機(jī)工程類專業(yè)學(xué)生學(xué)習(xí)。兩種主流的程序設(shè)計(jì)方法,相得益彰,互為裨益。
?理論與應(yīng)用相結(jié)合 以模塊化的方法闡述硬件基礎(chǔ)理論,以實(shí)例牽引的方法講述硬件通用模塊系統(tǒng)化方法,在硬件模塊基礎(chǔ)上講述外設(shè)驅(qū)動(dòng)程序設(shè)計(jì)方法,理論與應(yīng)用相結(jié)合,硬件與軟件相結(jié)合,便于讀者系統(tǒng)掌握嵌入式技術(shù)。
自1971年第一塊單片機(jī)誕生至今,嵌入式系統(tǒng)經(jīng)歷了發(fā)展初期和蓬勃發(fā)展期,現(xiàn)已進(jìn)入了成熟期。在嵌入式系統(tǒng)發(fā)展初期,各種電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,EDA)工具還不完善,芯片的制作工藝較復(fù)雜,制作成本頗高,嵌入式程序設(shè)計(jì)語言以匯編語言為主,該時(shí)期只有電子工程專業(yè)技術(shù)人員才能從事嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)工作。到了20世紀(jì)80年代,隨著MCS51系列單片機(jī)的出現(xiàn)及C51程序設(shè)計(jì)語言的成熟,單片機(jī)應(yīng)用系統(tǒng)成為嵌入式系統(tǒng)的代名詞,MCS51單片機(jī)迅速在智能儀表和自動(dòng)控制等相關(guān)領(lǐng)域得到普及。同時(shí)期,各種數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)芯片、現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片和單片系統(tǒng)(System on a Chip,SoC)芯片如雨后春筍般涌現(xiàn)出來,應(yīng)用領(lǐng)域從最初的自動(dòng)控制應(yīng)用擴(kuò)展到各種各樣的智能應(yīng)用系統(tǒng)。1997年,ARM公司推出ARM7微控制器,之后推出Cortex系列微控制器和微處理器,成為嵌入式系統(tǒng)設(shè)計(jì)的首選芯片,標(biāo)志著嵌入式系統(tǒng)進(jìn)入蓬勃發(fā)展期。
本書基于ARM CortexM3內(nèi)核微控制器芯片STM32F103C8T6,詳細(xì)講述嵌入式控制系統(tǒng)的硬件設(shè)計(jì)與軟件開發(fā)技術(shù)。STM32F103C8T6芯片體積小,功耗低,片上資源緊湊,通用輸入/輸出口有37個(gè),核心工作頻率最高達(dá)72MHz,片上Flash空間為64KB,RAM空間為20KB,支持C語言編程控制,易學(xué)易用,是替代傳統(tǒng)8051系列單片機(jī)的最佳選擇。本書按照強(qiáng)化學(xué)生應(yīng)用能力與實(shí)踐能力的教學(xué)思想,編排了一套適合學(xué)生分組設(shè)計(jì)的硬件電路系統(tǒng)(選用了具有48只引腳LQFP封裝的STM32F103C8T6芯片,適合學(xué)生手工焊裝),在此硬件電路系統(tǒng)的基礎(chǔ)上,介紹組織嵌入式控制設(shè)計(jì)與編程知識(shí),偏重闡述片內(nèi)外設(shè)控制技術(shù)、OLED屏、RS485總線和WiFi模塊等。
全書內(nèi)容分為8章。第1章介紹ARM CortexM3內(nèi)核微控制器芯片STM32F103C8T6的內(nèi)部結(jié)構(gòu)、引腳配置、存儲(chǔ)器、片內(nèi)外設(shè)、異常與NVIC中斷等。第2章介紹一個(gè)完整的硬件電路系統(tǒng),包括STM32F103C8T6核心電路,電源電路,LED燈與蜂鳴器驅(qū)動(dòng)電路、按鍵控制電路,溫度測(cè)量電路,RS485總線電路,WiFi接口、OLED屏接口和擴(kuò)展接口,JIAG接口、電池接口與BOOT控制電路等。這部分內(nèi)容作為學(xué)生分組制作硬件電路的參考藍(lán)圖,也是后面程序設(shè)計(jì)的硬件電路基礎(chǔ)。第3章討論STM32F103C8T6的GPIO訪問方法及LED燈控制技術(shù),并完整地介紹基于Keil MDK創(chuàng)建工程的方法,后面的工程均基于該工程框架。第4章深入分析NVIC中斷的工作原理,重點(diǎn)介紹GPIO外部輸入中斷的處理方法,并給出按鍵響應(yīng)實(shí)例。第5章闡述STM32F103C8T6內(nèi)部通用定時(shí)器、看門狗定時(shí)器、實(shí)時(shí)時(shí)鐘和系統(tǒng)節(jié)拍定時(shí)器的應(yīng)用與實(shí)例,其中,系統(tǒng)節(jié)拍定時(shí)器主要用于為嵌入式實(shí)時(shí)操作系統(tǒng)提供時(shí)鐘節(jié)拍(一般設(shè)為100Hz)。第6章介紹OLED屏顯示控制技術(shù),并闡述溫度傳感器DS18B20的應(yīng)用方法,展示OLED屏顯示環(huán)境溫度值的應(yīng)用實(shí)例。第7章介紹RS485總線通信方法和WiFi模塊用法,串口通信一般借助中斷方式從上位機(jī)接收串口數(shù)據(jù),通過函數(shù)調(diào)用方式向上位機(jī)發(fā)送串口數(shù)據(jù)。第8章基于機(jī)智云平臺(tái)介紹終端設(shè)備通過WiFi模塊聯(lián)網(wǎng)通信的程序設(shè)計(jì)方法,實(shí)現(xiàn)Android手機(jī)遠(yuǎn)程實(shí)時(shí)顯示STM32F103C8T6學(xué)習(xí)板上的溫度信息。
本書具備嵌入式開發(fā)知識(shí)的完整性和可擴(kuò)展性。通過本書的教學(xué)活動(dòng),展示給讀者一個(gè)從事嵌入式系統(tǒng)設(shè)計(jì)的認(rèn)知應(yīng)用提高的全過程。認(rèn)知體現(xiàn)為對(duì)嵌入式系統(tǒng)核心芯片的學(xué)習(xí)和掌握,重點(diǎn)在于學(xué)習(xí)一款芯片的存儲(chǔ)器、中斷與片內(nèi)外設(shè)(合稱為芯片的三要素),這也是第1章關(guān)于STM32F103C8T6芯片的重點(diǎn)內(nèi)容; 應(yīng)用體現(xiàn)在應(yīng)用芯片進(jìn)行嵌入式電路板的設(shè)計(jì),并掌握各個(gè)電路模塊的工作原理和訪問技術(shù),會(huì)應(yīng)用C語言進(jìn)行驅(qū)動(dòng)函數(shù)與應(yīng)用程序設(shè)計(jì),即第2~7章的全部內(nèi)容; 提高是指將該電路板底層硬件的訪問方法抽象為函數(shù)調(diào)用,并實(shí)現(xiàn)智慧終端通過WiFi模塊聯(lián)網(wǎng)通信的程序設(shè)計(jì),即第8章的內(nèi)容,使沒有硬件電路設(shè)計(jì)基礎(chǔ)的軟件工程師可在此基礎(chǔ)上開發(fā)出高性能的用戶應(yīng)用程序,并實(shí)現(xiàn)友好的圖形用戶界面。建議授課教師先講授第2章內(nèi)容并組織學(xué)生分組設(shè)計(jì)電路板,再按順序講授第1章和第4~7章內(nèi)容,第8章內(nèi)容根據(jù)專業(yè)培養(yǎng)方案選學(xué)。
本書中的全部工程都是完整且相互聯(lián)系的,后續(xù)章節(jié)的工程建立在前面章節(jié)工程的基礎(chǔ)上,是添加了新的功能而構(gòu)建的。本書以有限的篇幅巧妙地將所有工程的源代碼都包含進(jìn)來,強(qiáng)烈建議讀者自行錄入源程序,以加強(qiáng)學(xué)習(xí)效果。請(qǐng)使用Keil MDK 5.39或更高版本編寫與調(diào)試本書工程程序。
本書第2章的學(xué)習(xí)平臺(tái)是一個(gè)完整的硬件平臺(tái),也是需要學(xué)生分組開展設(shè)計(jì)的硬件實(shí)驗(yàn)平臺(tái),包括原理圖設(shè)計(jì)與PCB設(shè)計(jì)(可使用Altium Designer軟件)、制板、焊裝、樣機(jī)測(cè)試等。一般地,一個(gè)小組可在兩周時(shí)間內(nèi)獨(dú)立完成這些工作。同時(shí),本書的所有工程均使用這個(gè)硬件學(xué)習(xí)平臺(tái)測(cè)試通過。本書由江西財(cái)經(jīng)大學(xué)軟件與物聯(lián)網(wǎng)工程學(xué)院張勇組織編寫,唐穎軍參編了第3章,陳愛國參編了第4章,趙敏參編了第5~7章,單丹參編了第8章。感謝清華大學(xué)出版社劉星、李錦編輯對(duì)本書出版付出的辛勤工作。
黨的二十大報(bào)告中指出教育、科技、人才是全面建設(shè)社會(huì)主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐 堅(jiān)持把發(fā)展經(jīng)濟(jì)的著力點(diǎn)放在實(shí)體經(jīng)濟(jì)上,推進(jìn)新型工業(yè)化 推動(dòng)戰(zhàn)略性新興產(chǎn)業(yè)融合集群發(fā)展,構(gòu)建新一代信息技術(shù)、人工智能、生物技術(shù)、新能源、新材料、高端裝備、綠色環(huán)保等一批新的增長引擎 加快發(fā)展物聯(lián)網(wǎng)。在黨的二十大思想指引下,本書將硬件設(shè)計(jì)與軟件控制相結(jié)合,將微控制器技術(shù)的教學(xué)與實(shí)踐相結(jié)合,培養(yǎng)兼有基礎(chǔ)理論知識(shí)和工程實(shí)用能力的新工科大學(xué)生,培養(yǎng)服務(wù)于新一代信息技術(shù)和物聯(lián)網(wǎng)技術(shù)的專業(yè)型人才。
配 套 資 源
程序代碼等資源: 掃描目錄上方的二維碼下載。
教學(xué)課件、教學(xué)大綱等資源: 到清華大學(xué)出版社官方網(wǎng)站本書頁面下載,或者掃描封底的書圈二維碼在公眾號(hào)下載。
微課視頻(99分鐘,24集): 掃描書中相應(yīng)章節(jié)中的二維碼在線學(xué)習(xí)。
注: 請(qǐng)先掃描封底刮刮卡中的文泉云盤防盜碼進(jìn)行綁定后再獲取配套資源。
作者于江西財(cái)經(jīng)大學(xué)麥廬園 2025年3月
配套資源
第1章STM32F103微控制器
1.1STM32F103C8T6概述
1.2STM32F103C8T6引腳定義
1.3STM32F103架構(gòu)
1.4STM32F103存儲(chǔ)器
1.5STM32F103片內(nèi)外設(shè)
1.6STM32F103異常與中斷
1.7本章小結(jié)
習(xí)題
第2章STM32F103C8T6學(xué)習(xí)平臺(tái)
2.1STM32F103C8T6核心電路
2.2電源電路
2.3LED燈與蜂鳴器驅(qū)動(dòng)電路
2.4按鍵控制電路
2.5溫度測(cè)量電路
2.6RS485總線電路
2.7WiFi接口、OLED屏接口和擴(kuò)展接口
2.8JTAG接口、電池接口與BOOT控制電路
2.9本章小結(jié)
習(xí)題
第3章LED燈控制程序設(shè)計(jì)
3.1STM32F103通用輸入/輸出口
3.1.1GPIO寄存器
3.1.2AFIO寄存器
3.2STM32CubeMX安裝與用法
3.3Keil MDK工程框架
3.4LED燈閃爍實(shí)例
3.4.1寄存器類型工程實(shí)例
3.4.2HAL類型工程實(shí)例
3.5本章小結(jié)
習(xí)題
第4章按鍵與中斷處理
4.1NVIC中斷工作原理
4.2GPIO外部輸入中斷
4.3用戶按鍵中斷實(shí)例
4.3.1寄存器類型工程實(shí)例
4.3.2HAL類型工程實(shí)例
4.4本章小結(jié)
習(xí)題
第5章定時(shí)器
5.1系統(tǒng)節(jié)拍定時(shí)器
5.1.1系統(tǒng)節(jié)拍定時(shí)器的工作原理
5.1.2系統(tǒng)節(jié)拍定時(shí)器的寄存器工程實(shí)例
5.1.3系統(tǒng)節(jié)拍定時(shí)器的HAL工程實(shí)例
5.2看門狗定時(shí)器
5.2.1窗口看門狗定時(shí)器的工作原理
5.2.2窗口看門狗定時(shí)器的寄存器類型實(shí)例
5.2.3窗口看門狗定時(shí)器的HAL類型實(shí)例
5.3實(shí)時(shí)時(shí)鐘
5.3.1實(shí)時(shí)時(shí)鐘的工作原理
5.3.2實(shí)時(shí)時(shí)鐘的寄存器類型實(shí)例
5.3.3實(shí)時(shí)時(shí)鐘HAL類型實(shí)例
5.4通用定時(shí)器
5.4.1通用定時(shí)器的工作原理
5.4.2通用定時(shí)器的寄存器類型實(shí)例
5.4.3通用定時(shí)器的HAL類型實(shí)例
5.5本章小結(jié)
習(xí)題
第6章OLED屏與溫度傳感器
6.1OLED顯示模塊
6.1.1OLED屏顯示原理
6.1.2寄存器類型工程實(shí)例
6.1.3HAL類型工程實(shí)例
6.2溫度傳感器
6.2.1DS18B20工作原理
6.2.2寄存器類型工程實(shí)例
6.2.3HAL類型工程實(shí)例
6.3熱敏電阻
6.3.1ADC工作原理
6.3.2寄存器類型工程實(shí)例
6.3.3HAL類型工程實(shí)例
6.4本章小結(jié)
習(xí)題
第7章串口通信與WiFi模塊
7.1RS232串口通信工作原理
7.2STM32F103串口
7.3RS485串行通信
7.3.1RS485串行通信方法
7.3.2寄存器類型工程實(shí)例
7.3.3HAL類型工程實(shí)例
7.4WiFi模塊
7.4.1ESP01S模塊測(cè)試
7.4.2寄存器類型工程實(shí)例
7.4.3HAL類型工程實(shí)例
7.5本章小結(jié)
習(xí)題
第8章機(jī)智云開發(fā)技術(shù)
8.1準(zhǔn)備工作
8.2聯(lián)網(wǎng)測(cè)試
8.3設(shè)備端程序設(shè)計(jì)
8.4機(jī)智云LED燈控制實(shí)例
8.5本章小結(jié)
習(xí)題
參考文獻(xiàn)