本書講述了STM32的學習與開發(fā)知識,讀者從無到有地學習一款芯片,不僅能夠掌握學習芯片知識的方法,而且能夠?qū)η度胧侥K的開發(fā)有所了解。本書主要介紹Cortex-M3系列STM32的工作原理及應用。本書共20章,包括:嵌入式的基本概念;ARM的體系結(jié)構(gòu);本書所用開發(fā)板硬件介紹;系統(tǒng)時鐘及匯編;GPIO控制LED實現(xiàn);UART實驗;ADC的應用;定時器的介紹;中斷實驗;STM32的功能模塊及常用協(xié)議介紹;μC/OS-II操作系統(tǒng)基礎及應用;項目管理及開發(fā)流程介紹;KEIL集成開發(fā)環(huán)境介紹及建立STM32項目模板。本書面向立志于ARM嵌入式開發(fā)的初學者,以及從單片機向ARM處理器轉(zhuǎn)型的工程技術(shù)人員。本書可作為高校電子相關專業(yè)教材,也可以作為想從事嵌入式開發(fā)領域的高校畢業(yè)生的自學教材,還可作為目前正在做8/16位單片機開發(fā)并且想轉(zhuǎn)做ARM芯片開發(fā)的工程師的參考手冊。
楊余柳,畢業(yè)于中南大學,有8年電子行業(yè)產(chǎn)品開發(fā)經(jīng)驗。先后供職于富士康科技集團(北京)和北京索愛普天移動通信有限公司,從事索尼愛立信(現(xiàn)索尼)手機測試設備開發(fā)工作。目前就職于深圳信盈達電子有限公司,從事嵌入式產(chǎn)品開發(fā)和教研工作。張葉茂,碩士研究生,高校講師職稱,南寧職業(yè)技術(shù)學院應用電子技術(shù)專業(yè)和智能產(chǎn)品開發(fā)專業(yè)的負責人。近5年來一直從事高校電子技術(shù)、嵌入式技術(shù)的教學和科研工作,主持和參與了市廳級以上科研項目3項、申請專利5項、發(fā)表中文核心論文5篇。倫硯波,畢業(yè)于中原工學院,有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微處理器的應用領域及特點
1.1.3ARM微處理器系列
1.1.4ARM微處理器結(jié)構(gòu)
1.1.5ARM微處理器的應用選型
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相關的寄存器
5.4原理圖
5.5GPIO配置過程
5.6GPIO實驗范例
5.7作業(yè)
第6章UART實驗
6.1UART簡介
6.2UART特性
6.3串口如何工作
6.4與UART相關寄存器
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保護時間和預分頻寄存器(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相關的寄存器
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與基本定時器相關的寄存器
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相關的寄存器
10.3范例程序
10.4作業(yè)
第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章協(xié)處理器DMA
15.1DMA簡介
15.2DMA控制器的功能特點
15.3DMA相關控制模塊
第16章USB
16.1USB外設特點
16.2USB硬件分析
第17章μC/OS-II操作系統(tǒng)基礎
17.1為什么要用操作系統(tǒng)
17.2初識μC/OS-II
17.3μC/OS-II基礎知識
17.3.1任務的概念
17.3.2任務的狀態(tài)
17.3.3系統(tǒng)調(diào)度和任務切換
17.3.4任務的分類
17.3.5任務間同步與通信
17.4μC/OS-II移植
17.5μC/OS-II系統(tǒng)源碼
17.5.1uc/OS系統(tǒng)核心文件(跟硬件無關)
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內(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)境介紹及應用
參考文獻