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