內容簡介
本書從CortexM3處理器入手,主要講解其家族成員中較為常用的微處理器STM32。全書從STM基本I/O連線埠配置講起,深入淺出地介紹了該處理器的重要內容,包括基本I/O連線埠、中斷、ADC、定時器等。最後5章給出了5個實際案例,有的案例來源於學生的電子設計大賽作品,有的案例來源於科研課題,例如平衡車設計、井下通信分站設計等。它們都較好地詮釋了STM32的典型套用,可以快速地幫助讀者入門並動手操作。本書可作為電子、通信及控制等相關專業的參考書,也可以作為相關技術人員的參考資料。
目錄
第1章ARMCortexM3核介紹
1.1CortexM3主要特性
1.2典型M3核處理器特性
1.2.1命令規則
1.2.2產品功能和外設配置
1.3習題
第2章開發環境搭建
2.1MDK安裝
2.2新建工程
2.3採用STLink調試仿真代碼
2.4習題
第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連線埠輸出數據暫存器(GPIOx_ODR)(x=A…E)
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簡單按鍵輸入
3.9習題
第4章中斷
4.1STM32中斷和異常
4.2STM32中斷相關的基本概念
4.2.1優先權
4.2.2中斷控制器NVIC
4.2.3NVIC的優先權組
4.3外部中斷
4.3.1外部中斷基本情況
4.3.2使用外部中斷的基本步驟
4.4習題
第5章串口通信
5.1串口通信基礎
5.1.1基本概念
5.1.2常用的串列通信接口
5.1.3套用串列通信的數據採集結構
5.2STM32串口操作
5.2.1暫存器方式操作串口
5.2.2庫函式方式操作串口
5.3習題
第6章直接暫存器訪問(DMA)
6.1DMA基礎知識
6.2STM32的DMA操作
6.2.1暫存器方式操作DMA
6.2.2庫函式方式操作DMA
6.2.3DMA操作實例
6.3習題
第7章模擬數字轉換(ADC)
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操作實例
7.3習題
第8章定時器
8.1定時器基礎知識
8.1.1高級定時器
8.1.2基本定時器
8.1.3通用定時器
8.2STM32定時器操作
8.2.1暫存器方式操作定時器
8.2.2庫函式方式操作定時器
8.2.3定時器操作實例
8.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通信示例
9.10習題
第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微分參數整定
10.11習題
第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.4OLED顯示軟體設計
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迷宮模式調試
11.9習題
第12章平衡車設計
12.1硬體電路設計
12.1.1硬體系統方案設計
12.1.2環境檢測感測器電路設計
12.2人機互動電路設計
12.3MPU6050使用方法
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卡爾曼濾波算法
12.5習題
第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數據計算部分
13.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鍵盤輸入
14.3習題
參考文獻