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