ARM Cortex-M3 體系結構與編程, 2/e (The Architecture and Programming of Arm Cortex-M3, 2/e)
內容描述
本書從Cortex-M3處理器入手,詳細闡述了STM32微控制器的用法。本書從編程軟件的使用、STM32的IO口配置講起,深入淺出地介紹了該處理器的重要內容,主要包括基本IO接口、中斷、ADC、定時器等。最後幾章給出了多個案例,有的來源於學生的電子設計大賽作品,有的來源於科研課題,如平衡車設計、井下通信分站設計、四旋翼飛行器設計等,都較好地詮釋了STM32的典型應用,可以幫助讀者快速地入門並且上手操作。最後一章給出幾個設計案例思路,讀者在綜合前面的學習後,可以自行設計作品,達到活學活用的目的。
本書配套全部設計電路圖、源代碼和PPT素材以及在線答疑等,方便讀者學習。本書可作為電子、通信及控制等相關專業的參考書,也可以作為相關技術人員的技術參考書。
更系統論述了嵌入式微處理器ARM Cortex-M3(STM32)的原理、架構、編程與項目開發。全書從最基本的I/O埠配置講起,依次介紹了中斷、串口通信、A/D轉換、定時器、CAN總線等基本功能,然後詳盡介紹了幾類典型的實際嵌入式系統項目的開發。全書給出了作者近年設計的5個實際項目:倒立擺設計、能車設計、平衡車設計、電子秤設計、井下通信分站設計。提供了這些項目的全部源代碼,可直接拿來二次開發,用於課程設計或科研項目。本書配套提供了全部設計源代碼、設計圖紙及演示視頻,方便讀者學習使用。本書配有基礎的項目開發板;並提供學習交流QQ群,歡迎讀者參與進來,和廣大的STM32愛好者共同學習,及時解決設計中遇到的問題。
目錄大綱
第2版前言
第1版前言
學習說明
第1章ARM Cortex—M3核介紹
1.1Cortex—M3主要特性
1.2典型M3核處理器特性
1.2.1命名規則
1.2.2產品功能和外設配置
習題
第2章開發環境搭建
2.1MDK安裝
2.2新建工程
2.3採用ST—Link調試仿真代碼
習題
第3章基本I/O端口控制
3.1MDK新建工程
3.2MDK工程配置
3.3寄存器法操作代碼分析
3.4時鐘配置
3.4.1時鍾樹
3.4 .2時鐘源
3.4.3APB2外設時鐘使能寄存器(RCC_APB2ENR)
3.5I/O端口配置
3.5.1I/O基本情況
3.5.2GPIO配置寄存器描述
3.5.3端口輸出數據寄存器
3.6用庫函數操作流水燈
3.6 .1GPIO_Init函數
3.6.2RCC_APB2PeriphClockCmd
3.6.3控制I/O輸出電平
3.6.4LED.h文件
3.6.5軟件調試易現問題
3.7使用庫函數法控制數碼管
3.7.1數碼管基礎知識
3.7.2硬件電路設計
3.7.3軟件說明
3.8簡單按鍵輸入
習題
第4章中斷
4.1STM32中斷和異常
4.2STM32中斷相關的基本概念
4.2.1優先級
4.2.2中斷控制器NVIC
4.2.3NVIC的優先級組
4.3外部中
4.3.1外部中斷基本情況
4.3.2使用外部中斷的基本步驟
習題
第5章串口通信
5.1串口通信基礎
5.1.1基本概念
5.1.2常用的串行通信接口
5.1.3應用串行通信的數據採集結構
5.2STM32串口操作
5.2.1寄存器方式操作串口
5.2.2庫函數方式操作串口
習題
第6章直接寄存器訪問
6.1DMA基礎知識
6.2STM32的DMA操作
6.2.1寄存器方式操作DMA
6.2.2庫函數方式操作DMA
6.2.3DMA操作實例
習題
第7章模擬/數字轉換器
7.1ADC基礎知識
7.1.1ADC主要特性
7.1.2ADC框圖及引腳分佈
7.1.3通道選擇
7.1.4ADC的轉換模式
7.1.5ADC寄存器和固件庫函數列表
7.2STM32ADC操作
7.2.1寄存器方式操作ADC
7.2.2庫函數方式操作ADC
7.2.3ADC操作實例
習題
第8章定時器
8.1定時器基礎知識
8.1.1高級定時器
8.1.2基本定時器
8.1. 3通用定時器
8.2STM32定時器操作
8.2.1寄存器方式操作定時器
8.2.2庫函數方式操作定時器
8.2.3定時器操作實例
習題
第9章CAN總線設計
9.1CAN總線基本工 作原理
9.2CAN協議的特點
9.3CAN協議通信過程
9.4CAN的報文格式
9.4.1數據幀
9.4.2遙控幀
9.4.3錯誤幀
9.4.4過載幀
9.4.5幀間隔
9.4.6優先級的決定
9.5CAN總線錯誤處理機制
9.5.1錯誤狀態
9.5.2錯誤檢測
9.6同步
9.6.1同步類型
9.6.2同步原則
9.7CAN總線拓撲結構
9.7.1STM32的CAN通信模塊
9.7.2CAN控制器MCP2515介紹
9.8CAN通信的軟件設計
9.8.1系統程序流程
9.8.2系統接收發送中斷處理
9.8.3CAN總線初始化配置
9.8.4報文的發送
9.8.5報文的接收
9.9CAN通信示例
習題
第10章倒立擺設計
10.1設計內容與實現指標
10.1.1倒立擺的選擇
10.1.2系統設計指標
10.2系統方案確定
10.2.1系統結構組成
10.2.2系統模型分析
10.2.3系統控制方案確定
10.3系統硬件設計
10.4電機的選擇及驅動電路的設計
10.4.1電機的選擇
10.4.2電機驅動電路的設計
10.5測量電路設計
10.5.1擺桿角度測量電路的設計
10.5.2旋臂位置測量電路的設計
10.6通信電路的設計
10.6.1上位機通 電路的設計
10.6.2無線傳輸電路的設計
10.7輔助電路設計
10.7.1語音提示電路的設計
10.7.2電源電路的設計
10.8系統軟件設計
10.8.1系統控製程序設計
10.8.2起擺程序設計
10.8. 3PID控製程序設計
10.8.4電機驅動程序設計
10.8.5上位機通信程序設計
10.8.6無線通信程序設計
10.9作品的製作與調試
10.9.1倒立擺機械結構的製作問題
10.9.2PCB設計應注意的問題
10.9.3電路板的製作問題
10.10PID參數的整定
10.10.1比例參數整定
10.10.2積分參數整定
10.10.3微分參數整定
習題
第11章智能小車設計
11.1硬件電路設計
11.1.1硬件系統方案設計
11.1 .2最小系統電路設計
11.1.3電源電路設計
11.1.4電機驅動電路設計
11.1.5環境檢測傳感器電路設計
11.2人機交互電路設計
11.2.1OLED顯示電路設計
11.2.2紅外遙控電路設計
11.2.3蜂鳴器提示電路設計
11.3總體軟件設計
11.3.1道路基准採集模式軟件
11.3.2PID尋跡模式軟件
11.3.3迷宮模式軟件
11.3.4 OLED顯示軟件設計
11.4PID控制軟件設計
11.4.1PID介紹
11.4.2比例(P)控制器
11.4.3比例積分(PI)控制器
11.4.4比例微分(PD)控制器
11.4.5比例積分微分(PID )控制器
11.4.6PID尋跡
11.5迷宮算法設計
11.5.1左手法
11.5.2迷宮搜索
11.5.3迷宮最短路徑算法
11.6設計測量方法與數據處理
11.6.1傳感器分佈
11.6.2五路模擬傳感器數據測量
11.7傳感器軟件濾波
11.7.1軟件濾波處理介紹
11.7.2軟件濾波的方法
11.8調試方法
11.8.1PID參數調試
11.8.2迷宮模式調試
習題
第12章平衡車設計
12.1硬件電路設計
12.1.1硬件系統方案設計
12.1.2環境檢測傳感器電路設計
12.2人機交互電路設計
12.3MPU—6050使用方法
12.3.1引腳說明
12.3.2SMPRT_DIV寄存器
12.3.3CONFIG寄存器
12.3.4GYRO_CONFIG寄存器
12.3.5ACCEL_CONFIG寄存器
12.3.6加速度計測量寄存器
12.3 .7TEMP_OUT_H和TEMP_OUT_L寄存器
12.3.8陀螺儀測量寄存器
12.3.9PWR_MGMT_1寄存器
12.3.10WHO_AM_I寄存器
12.4總體軟件 計
12.4.1車身狀態採集模式軟件
12.4.2PID車身保持模式軟件
12.4.3人機交互模式軟件設計
12.4.4卡爾曼濾波算法
習題
第13章電子秤設計
13.1設計指標
13.2設計方案
13.3硬件電路設計說明
13.3.1主控制器相關電路
13.3.2TFT液晶屏相關電路設計
13.3.3AD芯片HX711相關電路設計
13.3.4WT588D語音模塊相關電路設計
13.3.5稱重傳感器相關電路設計
13.4軟件設計思路及代碼分析
13.4. 1TFT觸控液晶模塊部分
13.4.2WT588D語音模塊部分
13.4.3HX711芯片部分
13.4.4DS18B20芯片部分
13.4.5數據計算部分
習題
第14章井下通信分站設計
14.1硬件電路設計
14.1.1監控分站主要設計目標及參數
14.1.2硬件電路設計方案
14.2軟件方案設計
14.2.1軟件總體程序的思路
14.2.2RS485接口的使用及程序流程
14.2.3CAN數據傳輸
14.2.4OLED顯示
14.2.5鍵盤輸入
習題
第15章無線電能功率傳輸系統的設計
15.1設計內容與實現指標
15.1.1設計內容
15.1.2系統設計指標
15.2無 線電能傳輸的基本原理分析
15.2.1無線電能傳輸的耦合方式
15.2.2磁諧振耦合式無線電能傳輸的基本原理
15.2.3磁場諧振式無線電能傳輸系統的組成
15.2.4實現傳輸的關鍵裝置
15.3無線電能傳輸的特性
15.3.1頻率特性對無線電能傳輸系統的影響
15.3.2能量發射線圈設計對無線電能傳輸系統的影響
15.3.3電容補償對無線能量傳輸系統性能的影響
15.4系統方案確定及電路設計
15.4.1系統結構組成
15.4.2主要拓撲電路的選擇與設計
15.4.3MOS管驅動設計
15.4.4線圈和電容的設計
15.4.5接收端高頻整流的設計
15.4.6控制電路的設計
15.4. 7程序的設計
15.5調試與驗證
15.5.1系統的調試
15.5.2測量結果與結論分析
習題
第16章四旋翼飛行器設計
16.1四旋翼飛行器的結構
16.2四旋翼飛行器的運動控制方法
16.3四旋翼飛行器各部分的工作原理
16.3.1飛行姿態與升力關係
16.3.2飛行姿態的測量
16.3.3加速度傳感器工作原理 角度測量
16.3.4陀螺儀傳感器工作原理及角度測量
16.3.5磁力計傳感器工作原理及測量方法
16.4硬件設計
16.4.1總體設計
16.4.2飛行器主控電路最小系統設計
16.4.3姿態傳感器模塊
16.4. 4無線通信模塊
16.4.5定高模塊
16.4.6電機及驅動模塊
16.4.7遙控器模塊
16.4.8電源模塊選擇
16.4.9四軸飛行器的組裝
16.5軟件設計
16.5.1軟件預備知識
16.5.2主控程序初始化設置及說明
16.5.3姿態傳感器軟件設計
16.5.4氣壓計軟件設計
16.5.5遙控器軟件設計
16.6調試、問題解析及改進方向隨想
習題
第17章案例設計
17.1STM32的無線傳輸系統
17.1. 1設計任務
17.1.2系統結構組成
17.1.3主要設計思路
17.2風力擺控制系統設計
17.2.1設計任務
17.2.2系統結構組成
17.2.3主要設計思路
習題
參考文獻
作者介紹
馮新宇1978,黑龍江科技大學副教授,長期從事嵌入式系統項目開發和相關教學工作。曾主持或參與嵌入式相關課題與項目開發20餘項;近10年來一直作為指導教師參與全國電子設計大賽、飛思卡爾電子設計大賽、黑龍江省電子設計大賽等工作,所指導的學生多次獲得各種賽事重大獎勵。個人代表性著作有《ADS2009射頻電路設計與仿真》《ARM 9嵌入式開發基礎與實例進階》與《四旋翼無人飛行器設計》。