《基于ARM Cortex-M3的STM32微控制器实战教程 第2版》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:杨余柳,张叶茂,伦砚波编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:9787121326974
  • 页数:185 页
图书介绍:本书讲述了STM32的学习及开发,让读者从无到有地学习一款芯片,但更重要的是如何掌握学习芯片的方法,同时能够对嵌入式模块的开发有所了解。本书主要介绍Cortex-M3系列STM32的工作原理及应用。本书共20章,包括嵌入式的基本概念,ARM的体系结构,本书所用开发板硬件介绍,系统时钟及汇编,GPIO控制LED实现,UART实验,ADC的应用,定时器的介绍,中断实验,STM32的功能模块及常用协议介绍,μcos系统的移植,项目管理及开发流程介绍,KEIL集成开发环境介绍及建立STM32项目模板。

第1章 ARM和嵌入式系统介绍 1

1.1 ARM微处理器概述 1

1.1.1 ARM简介 1

1.1.2 ARM微处理器的应用领域及特点 2

1.1.3 ARM微处理器系列 2

1.1.4 ARM微处理器结构 5

1.1.5 ARM微处理器的应用选型 6

1.2 嵌入式系统的概念 7

1.2.1 嵌入式系统定义 7

1.2.2 嵌入式发展过程 7

1.3 嵌入式操作系统 9

1.3.1 概述 9

1.3.2 操作系统 10

1.3.3 实时操作系统(RTOS) 11

1.3.4 通用型操作系统 12

1.3.5 嵌入式常见的几个概念 12

1.3.6 常见的嵌入式操作系统 15

第2章 ARM体系结构 19

2.1 ARM体系结构的特点 19

2.2 各ARM体系结构版本 19

2.3 Cortex-M3简介 21

2.4 寄存器 21

2.5 操作模式和特权级别 23

2.6 内建的嵌套向量中断控制器 24

2.7 存储器映射 25

2.8 总线接口 26

2.9 存储器保护单元(MPU) 26

2.10 指令集 26

2.11 中断和异常 28

第3章 Cortex-M3控制器及外围硬件简介 29

3.1 STM32简介 29

3.2 STM32F103RBT6特性 29

3.3 订购信息 31

3.4 STM32系列内部结构方框图 31

3.5 外围硬件介绍 32

第4章 指令集和时钟 37

4.1 Thumb-2指令集介绍 37

4.2 指令格式 37

4.3 Cortex-M3时钟控制 37

第5章 GPIO实验 39

5.1 GPIO简介 39

5.2 GPIO功能特点 39

5.3 与GPIO相关的寄存器 41

5.4 原理图 45

5.5 GPIO配置过程 46

5.6 GPIO实验范例 46

5.7 作业 47

第6章 UART实验 48

6.1 UART简介 48

6.2 UART特性 49

6.3 串口如何工作 49

6.4 与UART相关寄存器 51

6.4.1 状态寄存器(USART_SR) 51

6.4.2 数据寄存器(USART_DR) 53

6.4.3 波特比率寄存器(USART_BRR) 53

6.4.4 控制寄存器1(USART_CR1) 54

6.4.5 控制寄存器2(USART_CR2) 55

6.4.6 控制寄存器3(USART_CR3) 57

6.4.7 保护时间和预分频寄存器(USART_GTPR) 58

6.5 硬件连接 58

6.6 程序编程步骤 59

6.7 范例程序 59

6.8 作业 61

第7章 模/数转换 62

7.1 A/D简介 62

7.2 A/D的主要参数 62

7.3 STM32系列A/D转换特点 62

7.4 与A/D相关的寄存器 64

7.4.1 ADC状态寄存器(ADC_SR) 64

7.4.2 ADC控制寄存器1(ADC_CR1) 64

7.4.3 ADC控制寄存器2(ADC_CR2) 66

7.4.4 ADC采样时间寄存器1(ADC_SMPR1) 68

7.4.5 ADC采样时间寄存器2(ADC_SMPR2) 69

7.4.6 ADC注入通道数据偏移寄存器x(ADC_JOFRx)(x=1,…,4) 69

7.4.7 ADC看门狗高阈值寄存器(ADC_HTR) 69

7.4.8 ADC看门狗低阈值寄存器(ADC_LRT) 70

7.4.9 ADC规则序列寄存器1(ADC_SQR1) 70

7.4.10 ADC规则序列寄存器2(ADC_SQR2) 70

7.4.11 ADC规则序列寄存器3(ADC_SQR3) 71

7.4.12 ADC注入序列寄存器(ADC_JSQR) 71

7.4.13 ADC注入数据寄存器x(ADC_JDRx)(x=1,…,4) 72

7.4.14 ADC规则数据寄存器(ADC_DR) 72

7.5 硬件连接 72

7.6 范例程序 73

第8章 定时器实验 75

8.1 通用定时器简介 75

8.2 STM32系列通用定时器特点 75

8.3 与基本定时器相关的寄存器 77

8.4 范例程序 82

8.5 作业 84

第9章 中断实验 85

9.1 中断简介 85

9.2 STM32中断特性 85

9.3 中断向量表 85

9.4 范例程序 88

9.5 作业 90

第10章 RTC实验 91

10.1 STM32系列RTC特点 91

10.2 与RTC相关的寄存器 91

10.3 范例程序 96

10.4 作业 98

第11章 IIC实验 99

11.1 STM32系列IIC特点 99

11.2 与IIC相关的寄存器 100

11.3 范例程序 108

第12章 看门狗实验 111

12.1 STM32系列IWDG特点 111

12.2 与IWDG相关的寄存器 111

12.3 范例程序 113

12.3.1 独立看门狗程序 113

12.3.2 窗口看门狗程序 115

第13章 SPI实验 118

13.1 SPI简介 118

13.2 SPI特点 118

13.3 与SPI相关的寄存器 119

13.4 范例程序 125

第14章 CAN BUS实验 128

14.1 CAN简介 128

14.2 bxCAN主要特点 128

14.3 CAN相关的寄存器 129

14.4 范例程序 142

第15章 协处理器DMA 146

15.1 DMA简介 146

15.2 DMA控制器的功能特点 146

15.3 DMA相关控制模块 148

第16章 USB 149

16.1 USB外设特点 149

16.2 USB硬件分析 149

第17章 μC/OS-Ⅱ操作系统基础 151

17.1 为什么要用操作系统 151

17.2 初识μC/OS-Ⅱ 151

17.3 μC/OS-Ⅱ基础知识 152

17.3.1 任务的概念 152

17.3.2 任务的状态 152

17.3.3 系统调度和任务切换 153

17.3.4 任务的分类 153

17.3.5 任务间同步与通信 153

17.4 μC/OS-Ⅱ移植 153

17.5 μC/OS-Ⅱ系统源码 154

17.5.1 uc/OS系统核心文件(跟硬件无关) 154

17.5.2 和CPU相关的文件 154

17.5.3 头文件组成 154

17.6 μC/OS-Ⅱ裁剪 154

第18章 μC/OS-Ⅱ应用 159

18.1 任务管理 159

18.2 时间管理 160

18.3 任务间通信 160

18.3.1 信号量 160

18.3.2 消息邮箱 162

18.3.3 消息队列 163

18.3.4 互斥型信号量 164

18.3.5 事件标志组 166

18.4 软件定时器 167

18.5 内存管理 169

18.6 临界区处理宏 170

18.7 其他函数 170

第19章 项目实战 171

19.1 项目管理知识 171

19.2 C语言编程规范 173

19.2.1 编程总原则 173

19.2.2 编程举例 175

19.2.3 注释 175

19.2.4 变量命名 176

19.2.5 编辑风格 176

19.3 ARM项目范例讲解 177

第20章 KEIL集成开发环境介绍及应用 179

参考文献 184