基於 ARM Cortex-M3 的 STM32 微控制器實戰教程, 2/e
內容描述
本書講述了STM32的學習與開發知識,讀者從無到有地學習一款芯片,不僅能夠掌握學習芯片知識的方法,而且能夠對嵌入式模塊的開發有所瞭解。本書主要介紹Cortex-M3系列STM32的工作原理及應用。
本書共20章,包括:嵌入式的基本概念;ARM的體系結構;本書所用開發板硬件介紹;系統時鐘及彙編;GPIO控制LED實現;UART實驗;ADC的應用;定時器的介紹;中斷實驗;STM32的功能模塊及常用協議介紹;μC/OS-II操作系統基礎及應用;項目管理及開發流程介紹;KEIL集成開發環境介紹及建立STM32項目模板。本書面向立志於ARM嵌入式開發的初學者,以及從單片機向ARM處理器轉型的工程技術人員。本書可作為高校電子相關專業教材,也可以作為想從事嵌入式開發領域的高校畢業生的自學教材,還可作為目前正在做8/16位單片機開發並且想轉做ARM芯片開發的工程師的參考手冊。
目錄大綱
第1章ARM和嵌入式系統介紹
1.1ARM微處理器概述
1.1.1ARM簡介
1.1.2ARM微處理器的應用領域及特點
1.1.3ARM微處理器系列
1.1.4ARM微處理器結構
1.1.5ARM微處理器的應用選型
1.2嵌入式系統的概念
1.2.1嵌入式系統定義
1.2.2嵌入式發展過程
1.3嵌入式操作系統
1.3.1概述
1.3.2操作系統
1.3.3實時操作系統(RTOS)
1.3.4通用型操作系統
1.3.5嵌入式常見的幾個概念
1.3.6常見的嵌入式操作系統
第2章ARM體系結構
2.1ARM體系結構的特點
2.2各ARM體系結構版本
2.3Cortex-M3簡介
2.4寄存器
2.5操作模式和特權級別
2.6內建的嵌套向量中斷控制器
2.7存儲器映射
2.8總線接口
2.9存儲器保護單元(MPU)
2.10指令集
2.11中斷和異常
第3章Cortex-M3控制器及外圍硬件簡介
3.1STM32簡介
3.2 STM32F103RBT6特性
3.3訂購信息
3.4STM32系列內部結構方框圖
3.5外圍硬件介紹
第4章指令集和時鐘
4.1Thumb-2指令集介紹
4.2指令格式
4.3Cortex-M3時鐘控制
第5章GPIO實驗
5.1GPIO簡介
5.2GPIO功能特點
5.3與GPIO相關的寄存器
5.4原理圖
5.5GPIO配置過程
5.6GPIO實驗範例
5.7作業
第6章UART實驗
6.1UART簡介
6.2UART特性
6.3串口如何工作
6.4與UART相關寄存器
6.4.1狀態寄存器(USART_SR)
6.4.2數據寄存器(USART_DR)
6.4.3波特比率寄存器(USART_BRR)
6.4.4控制寄存器1(USART_CR1)
6.4.5控制寄存器2(USART_CR2)
6.4.6控制寄存器3(USART_CR3)
6.4.7保護時間和預分頻寄存器(USART_GTPR)
6.5硬件連接
6.6程序編程步驟
6.7範例程序
6.8作業
第7章模/數轉換
7.1A/D簡介
7.2A/D的主要參數
7.3STM32系列A/D轉換特點
7.4與A/D相關的寄存器
7.4.1ADC狀態寄存器(ADC_SR)
7.4.2ADC控制寄存器1(ADC_CR1)
7.4.3ADC控制寄存器2(ADC_CR2)
7.4.4ADC採樣時間寄存器1( ADC_SMPR1)
7.4.5ADC採樣時間寄存器2(ADC_SMPR2)
7.4.6ADC注入通道數據偏移寄存器x (ADC_JOFRx)(x=1,…,4)
7.4.7ADC看門狗高閾值寄存器(ADC_HTR)
7.4.8ADC看門狗低閾值寄存器(ADC_LRT)
7.4.9ADC規則序列寄存器1(ADC_SQR1)
7.4.10ADC規則序列寄存器2(ADC_SQR2)
7.4.11ADC規則序列寄存器3(ADC_SQR3)
7.4.12ADC注入序列寄存器(ADC_JSQR)
7.4.13ADC注入數據寄存器x(ADC_JDRx) (x=1,…,4)
7.4.14ADC規則數據寄存器(ADC_DR)
7.5硬件連接
7.6範例程序
第8章定時器實驗
8.1通用定時器簡介
8.2STM32系列通用定時器特點
8.3與基本定時器相關的寄存器
8.4範例程序
8.5作業
第9章中斷實驗
9.1中斷簡介
9.2STM32中斷特性
9.3中斷向量表
9.4範例程序
9.5作業
第10章RTC實驗
10.1STM32系列RTC特點
10.2與RTC相關的寄存器
10.3範例程序
10.4作業
第11章IIC實驗
11.1STM32系列IIC特點
11.2與IIC相關的寄存器
11.3範例程序
第12章看門狗實驗
12.1STM32系列IWDG特點
12.2與IWDG相關的寄存器
12.3範例程序
12.3.1獨立看門狗程序
12.3.2窗口看門狗程序
第13章SPI實驗
13.1SPI簡介
13.2SPI特點
13.3與SPI相關的寄存器
13.4範例程序
第14章CAN BUS實驗
14.1CAN簡介
14.2bxCAN主要特點
14.3CAN相關的寄存器
14.4範例程序
第15章協處理器DMA
15.1DMA簡介
15.2DMA控制器的功能特點
15.3DMA相關控制模塊
第16章USB
16.1USB外設特點
16.2USB硬件分析
第17章μC/OS-II操作系統基礎
17.1為什麼要用操作系統
17.2初識μC/OS-II
17.3μC/OS-II基礎知識
17.3.1任務的概念
17.3.2任務的狀態
17.3.3系統調度和任務切換
17.3.4任務的分類
17.3.5任務間同步與通信
17.4μC/OS-II移植
17.5μC/OS-II系統源碼
17.5.1uc/OS系統核心文件(跟硬件無關)
17.5.2和CPU相關的文件
17.5.3頭文件組成
17.6μC/OS-II裁剪
第18章μC/OS-II應用
18.1任務管理
18.2時間管理
18.3任務間通信
18.3.1信號量
18.3.2消息郵箱
18.3.3消息隊列
18.3.4互斥型信號量
18.3.5事件標誌組
18.4軟件定時器
18.5內存管理
18.6臨界區處理宏
18.7其他函數
第19章項目實戰
19.1項目管理知識
19.2C語言編程規範
19.2.1編程總原則
19.2 .2編程舉例
19.2.3註釋
19.2.4變量命名
19.2.5編輯風格
19.3ARM項目範例講解
第20章KEIL集成開發環境介紹及應用
參考文獻
作者介紹
楊餘柳,畢業於中南大學,有8年電子行業產品開發經驗。先後供職於富士康科技集團(北京)和北京索愛普天移動通信有限公司,從事索尼愛立信(現索尼)手機測試設備開發工作。目前就職於深圳信盈達電子有限公司,從事嵌入式產品開發和教研工作。張葉茂,碩士研究生,高校講師職稱,南寧職業技術學院應用電子技術專業和智能產品開發專業的負責人。近5年來一直從事高校電子技術、嵌入式技術的教學和科研工作,主持和參與了市廳級以上科研項目3項、申請專利5項、發表中文核心論文5篇。倫硯波,畢業於中原工學院,有7年電子行業產品開發經驗,先後參與了智能汽車充電樁和智能樓宇等物聯網項目的開發,目前就職於深圳信盈達電子有限公司,從事嵌入式產品研發和教研工作。