本書介紹了意法半導體(STMicroelectronics,ST)公司的32位基于ARM Cortex-M3內核的STM32單片機原理與實踐。本書以培養(yǎng)學生的動手能力和增強學生的工程素養(yǎng)為目的,按照項目驅動的思路展開教學與實踐學習,以自制的開發(fā)板上的程序為實例,將STM32單片機的外圍引腳特性、內部結構原理、片上外設資源、開發(fā)設計方法和應用軟件編程、μC/OS-Ⅱ操作系統(tǒng)原理及應用等知識傳授給讀者!
第1章嵌入式系統(tǒng)概述
1.1嵌入式系統(tǒng)簡介
1.1.1嵌入式系統(tǒng)定義
1.1.2嵌入式系統(tǒng)特點
1.1.3嵌入式系統(tǒng)分類
1.1.4嵌入式系統(tǒng)發(fā)展
1.2ARM體系結構及微處理器系列
1.2.1ARM公司簡介
1.2.2ARM體系結構簡介
1.3Cortex-M系列處理器簡介
1.4STM32系列微控制器簡介
1.5STM32教學開發(fā)板
第2章Cortex-M3體系結構
2.1CM3微處理器核結構 第1章嵌入式系統(tǒng)概述
1.1嵌入式系統(tǒng)簡介
1.1.1嵌入式系統(tǒng)定義
1.1.2嵌入式系統(tǒng)特點
1.1.3嵌入式系統(tǒng)分類
1.1.4嵌入式系統(tǒng)發(fā)展
1.2ARM體系結構及微處理器系列
1.2.1ARM公司簡介
1.2.2ARM體系結構簡介
1.3Cortex-M系列處理器簡介
1.4STM32系列微控制器簡介
1.5STM32教學開發(fā)板
第2章Cortex-M3體系結構
2.1CM3微處理器核結構
2.2處理器的工作模式及狀態(tài)
2.3寄存器
2.4總線接口
2.5存儲器的組織與映射
2.5.1存儲器格式
2.5.2存儲器層次結構
2.5.3CM3存儲器組織
2.5.4STM32存儲器映射
2.5.5位綁定操作
2.6指令集
2.6.1ARM指令集
2.6.2Thumb指令集
2.6.3Thumb-2指令集
2.7流水線
2.8異常和中斷
2.9存儲器保護單元MPU
2.10STM32微控制器概述
2.10.1STM32命名
2.10.2STM32內部資源
第3章STM32最小系統(tǒng)
3.1電源電路
3.1.1供電方案
3.1.2電源管理器
3.1.3低功耗模式
3.2時鐘電路
3.2.1HSE時鐘和HSI時鐘
3.2.2PLL
3.2.3LSE時鐘和LSI時鐘
3.2.4系統(tǒng)時鐘SYSCLK
3.2.5RCC寄存器
3.3復位電路
3.4STM32啟動
3.5程序下載電路
3.6STM32最小系統(tǒng)
第4章STM32程序設計
4.1嵌入式軟件層次結構
4.2Cortex微控制器軟件接口標準
4.3FWLib固件庫
4.3.1STM32標準外設庫
4.3.2固件庫命名規(guī)則
4.3.3數(shù)據(jù)類型和結構
4.3.4固件庫的應用
4.4嵌入式C程序特點
4.5開發(fā)環(huán)境簡介
第5章GPIO原理及應用
5.1GPIO的硬件結構和功能
5.1.1GPIO硬件結構
5.1.2復用功能
5.1.3GPIO輸入功能
5.1.4GPIO輸出功能
5.1.5GPIO速度選擇
5.1.6鉗位功能
5.2GPIO寄存器
5.3GPIO庫函數(shù)
5.4庫函數(shù)和寄存器的關系
5.5應用實例
第6章EXTI原理及應用
6.1STM32中斷通道
6.2STM32中斷的過程
6.3NVIC硬件結構及軟件配置
6.3.1NVIC硬件結構
6.3.2STM32中斷優(yōu)先級
6.3.3中斷向量表
6.3.4NVIC寄存器
6.3.5NVIC庫結構
6.4EXTI硬件結構及軟件配置
6.4.1EXTI硬件結構
6.4.2中斷及事件
6.4.3EXTI中斷通道和中斷源
6.4.4EXTI寄存器
6.4.5EXTI庫函數(shù)
6.5應用實例
6.5.1按鍵中斷
6.5.2中斷嵌套案例1
6.5.3中斷嵌套案例2
第7章USART原理及應用
7.1端口重映射
7.2USART功能和結構
7.2.1USART功能
7.2.2USART結構
7.3USART幀格式
7.4波特率設置
7.5硬件流控制
7.6USART中斷請求
7.7USART寄存器
7.8USART庫函數(shù)
7.9USART應用實例
7.9.1直接傳送方式
7.9.2中斷傳送方式
7.9.3串口Echo回應程序
7.9.4利用printf()的串口編程
第8章定時器原理及應用
8.1STM32定時器概述
8.2通用定時器TIMx功能
8.3通用定時器TIMx結構
8.3.1時鐘源選擇
8.3.2時基單元
8.3.3捕獲和比較通道
8.3.4計數(shù)器模式
8.3.5定時時間的計算
8.3.6定時器中斷
8.4通用定時器TIMx寄存器
8.5通用定時器TIMx庫函數(shù)
8.6TIM2應用實例
8.6.1秒表
8.6.2輸出比較案例1
8.6.3輸出比較案例2
8.6.4PWM輸出
8.6.5PWM輸入捕獲
8.7RTC的功能及結構
8.7.1RTC的基本功能
8.7.2RTC的內部結構
8.8RTC控制寄存器
8.9備份寄存器
8.10電源控制寄存器
8.11RTC相關的RCC寄存器
8.12RTC應用實例
8.13系統(tǒng)時鐘SysTick簡介
8.14SysTick寄存器
8.14.1控制及狀態(tài)寄存器(SYSTICKCSR)
8.14.2重載寄存器(SYSTICKRVR)
8.14.3當前值寄存器(SYSTICKCVR)
8.14.4校準值寄存器(SYSTICKCALVR)
8.15SysTick應用實例
第9章DMA原理及應用
9.1DMA簡介
9.2DMA的功能及結構
9.2.1DMA的功能
9.2.2DMA結構
9.3DMA寄存器
9.4DMA庫函數(shù)
第10章ADC原理及應用
10.1ADC的功能及結構
10.2ADC的工作模式
10.3數(shù)據(jù)對齊
10.4ADC中斷
10.5ADC寄存器
10.6ADC庫函數(shù)
10.7應用實例
第11章μC/OS-II嵌入式操作系統(tǒng)基礎
11.1操作系統(tǒng)的功能
11.2操作系統(tǒng)的基本概念
11.2.1進程和線程
11.2.2實時操作系統(tǒng)RTOS
11.2.3其他概念
11.2.4應用程序在操作系統(tǒng)上的執(zhí)行過程
11.3操作系統(tǒng)的分類
11.3.1單體結構
11.3.2層次結構
11.3.3微內核結構
11.4μC/OS-II簡介
11.4.1μC/OS-II的主要特點
11.4.2μC/OS-II工作原理
11.4.3μC/OS-II的程序設計模式
11.5μC/OS-II移植
11.5.1移植條件
11.5.2移植步驟
11.5.3內核頭文件(OS_CPUH)
11.5.4與處理器相關的匯編代碼(OS_CPU_AASM)
11.5.5與CPU相關的C函數(shù)和鉤子函數(shù)(OS_CPU_CC)
第12章μC/OS-Ⅱ的內核機制
12.1μC/OS-II內核結構
12.1.1μC/OS-II的任務
12.1.2臨界代碼
12.1.3任務控制塊
12.1.4就緒表
12.1.5任務的調度
12.1.6中斷處理
12.1.7時鐘節(jié)拍
12.1.8任務的初始化
12.1.9任務的啟動
12.2μC/OS-II的任務管理
12.2.1創(chuàng)建任務
12.2.2刪除任務
12.2.3請求刪除任務
12.2.4改變任務優(yōu)先級
12.2.5掛起任務
12.2.6恢復任務
12.2.7任務調度實例
12.3μC/OS-II的時間管理
12.3.1延時函數(shù)
12.3.2恢復延時任務
12.3.3系統(tǒng)時間
12.4任務間的通信與同步
12.4.1事件控制塊
12.4.2信號量
12.4.3信號量實例
第13章嵌入式系統(tǒng)綜合設計實例
13.1嵌入式系統(tǒng)開發(fā)過程
13.2自平衡小車基本功能
13.3硬件結構
13.3.1電氣控制系統(tǒng)整體結構
13.3.2加速度計
13.3.3陀螺儀
13.4控制算法設計
13.4.1角度檢測算法設計
13.4.2運動控制算法設計
附錄A嵌入式系統(tǒng)常用縮寫和關于端口讀/寫的縮寫表示
附錄BCortex-M3指令清單
附錄C51單片機與STM32微控制器的比較
C.1硬件:寄存器
C.2硬件:存儲器空間
C.3硬件:堆!
C.4硬件:外設
C.5硬件:異常和中斷
C.6軟件:數(shù)據(jù)類型
C.7軟件:浮點
C.8軟件:中斷服務程序
C.9軟件:非對齊數(shù)據(jù)
C.10軟件:故障異!
C.11軟件:設備驅動程序和CMSIS
C.12軟件:混用C語言和匯編程序
C.13其他比較
附錄DSTM32實驗板原理圖
參考文獻