本書從一個最簡單的 STM32/GD32的程序出發(fā),逐步過渡到時鐘系統(tǒng)的作用和配置、如何精確延時、使定時器對各種信號進行捕獲。為了解決HAL庫函數(shù)涉及的大量的C語言知識,針對模塊寄存器的特點介紹了如何使用結(jié)構(gòu)體對這些寄存器進行封裝,并以GPIO的設(shè)置函數(shù)為例,介紹了如何實現(xiàn)功能的封裝,并最過渡到 HAL庫中庫函數(shù)的形成以及特點。全書共包含9個模塊,其中:模塊一介紹STM32/GD32 開發(fā)環(huán)境的使用,并順帶學(xué)習(xí) GPIO 口的輸出功能應(yīng)用和 STM32/GD32系列單片機相關(guān)知識以及本書使用的硬件平臺;模塊二介紹STM32/GD32時鐘系統(tǒng)的作用以及配置流程;模塊三介紹系統(tǒng)滴答定時器的定時原理及延中的應(yīng)用,同時對模塊化編程的思想進行介紹;模塊四介紹 STM32/GD32 的存儲器,包括程序的存放地點以及STM32/GD32的存儲器結(jié)構(gòu)等,并通過GPIO口的設(shè)置函數(shù)的定義初步學(xué)習(xí) STM32/GD32的功能集成;模塊五介紹機械按鍵的識別,通過該模塊的學(xué)習(xí),可以知道GPIO口的輸入的應(yīng)用特點,并對目前市面上的各種矩陣鍵盤的按鍵狀態(tài)的識別進行了介紹;模塊六介紹使用ST公司的初始化工具 STM32CubeMX對 STM32/GD32功能模塊的初始化,并介紹HAL庫的GPIO模塊控制的相關(guān)函數(shù);模塊七介紹STM32/GD32中斷的使能、響應(yīng)和執(zhí)行過程;模塊八介紹串口通信,包括輪詢方式、中斷方式收發(fā)數(shù)據(jù);模塊九學(xué)習(xí)定時器,在該模塊中,對定時器的原理進行了詳細的介紹,并通過定時器中斷、PWM信號的產(chǎn)生、輸入捕獲等的學(xué)習(xí)來對定時器進行整體的把握,為定時器的各種應(yīng)用奠定堅實基礎(chǔ)。
本書適合作為高職、應(yīng)用型本科相關(guān)專業(yè)的教材。不過由于本書以技術(shù)介紹和應(yīng)用為主,因此也可以作為本科相關(guān)專業(yè)的教材,以及作為相關(guān)技術(shù)人員的參考用書。
模塊1 STM32 開發(fā)入門基礎(chǔ)知識
項目1.1 STM32的開發(fā)過程
1.1.1 STM32的開發(fā)過程簡介
1.1.2 STM32 的通用 I/O 口的輸出功能
項目1.2STM32的基礎(chǔ)知識
1.2.1 STM32 單片機基礎(chǔ)知識
1.2.2 STM32 開發(fā)依托的硬件平臺
思考與練習(xí)
模塊 2 深入了解 STM32 的時鐘系統(tǒng)
項目2.1 單片機中時鐘系統(tǒng)的作用
項目2.2 STM32F4 的時鐘系統(tǒng)
2.2.1 時鐘源.
2.2.2 主鎖相環(huán)PLL
2.2.3 系統(tǒng)時鐘 SYSCLK
2.2.4 由SYSCLK模塊提供時鐘源的時鐘
2.2.5 APB1 總線和 APB2 總線上掛接的模塊
項目2.3 系統(tǒng)時鐘設(shè)置步驟
思考與練習(xí)
模塊3 Systick定時器的應(yīng)用和模塊化編程
項目3.1精確延時的實現(xiàn)--滴答定時器的原理及其應(yīng)用
項目3.2 Systick定時器的內(nèi)部結(jié)構(gòu)
3.2.1 滴答定時器簡介
3.2.2 滴答定時器的構(gòu)成
3.2.3 滴答定時器的寄存器封裝和模塊基地址的定義
項目3.3 滴答定時器的延時應(yīng)用
項目3.4 模塊化編程
思考與練習(xí)
模塊 4 STM32的存儲器結(jié)構(gòu)和 GPIO 設(shè)置通用函數(shù)設(shè)計
項目4.1STM32的存儲器
項目4.2 位段區(qū)域及其對應(yīng)位段別名區(qū)的關(guān)系 ..
4.2.1 位段和位段別名區(qū)的含義
4.2.2 位段和位段別名區(qū)地址的映射關(guān)系
4.2.3 位段中的位與位段別名區(qū)中字地址的代碼處理項目
4.3存儲器基礎(chǔ)知識
項目4.4 CPU和存儲器的數(shù)據(jù)交互
項目4.5STM32的存儲器結(jié)構(gòu)
4.5.1CM4內(nèi)核的存儲器結(jié)構(gòu)
4.5.2 STM32的存儲器結(jié)構(gòu)
項目4.6 通用1/0口設(shè)置函數(shù)的設(shè)計
思考與練習(xí)
模塊5 機械按鍵的識別--初步認識GPIO口的輸入功能項目
5.1 機械按鍵的識別
5.1.1 機械按鍵狀態(tài)的特點及其識別
5.1.2 GPIO端口位的數(shù)據(jù)輸入通道及輸入數(shù)據(jù)的讀取
5.1.3 GPIO端口位的輸入配置及上下拉電阻使能
5.1.4 STM32全部電路模塊的寄存器封裝項目
5.2 4x4矩陣鍵盤按鍵狀態(tài)的識別
思考與練習(xí)
·
模塊 6 基于 STM32CubeMX的 GPIO 口的輸入/輸出功能設(shè)計
項目6.1STM32CubeMX應(yīng)用基礎(chǔ)
6.1.1 認識 STM32CubeMX
6.1.2 基于 STM32CubeMX的開發(fā)步驟
6.1.3 STM32CubeMX生成工程
項目6.2 HAE庫GPIO外設(shè)抽象層
6.2.1 HAL 庫中 GPIO 相關(guān)函數(shù)
6.2.2 HAL庫中GPIO 口寄存器的封裝和相關(guān)定義
思考與練習(xí)·
模塊7 認識STM32的中斷系統(tǒng)
項目7.1 外部中斷任務(wù)的實現(xiàn)及其實現(xiàn)過程
7.1.1 STM32的外部中斷執(zhí)行過程
7.1.2 使用STM32CubeMX配置中斷時的注意事項
項目7.2 中斷的含義及其作用
項目7.3STM32的中斷管理
7.3.1 STM32的中斷源
7.3.2 STM32的中斷使能/失能控制.
7.3.3 STM32的中斷優(yōu)先級設(shè)置
7.3.4 STM32的中斷函數(shù)
7.3.5 中斷函數(shù)的響應(yīng)過程
……
模塊8 STM32串口及其應(yīng)用
模塊9 認識STM32的定時器
附錄
參考文獻