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