《STM32嵌入式微控制器快速上手 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:陈志旺等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121229565
  • 页数:367 页
图书介绍:本书介绍了意法半导体(STMicroelectronics,ST)公司的32位基于ARM Cortex-M3内核的STM32单片机原理与实践。本书以培养学生的动手能力和增强学生的工程素养为目的,按照项目驱动的思路展开教学与实践学习,以自制的开发板上的程序为实例,将STM32单片机的外围引脚特性、内部结构原理、片上外设资源、开发设计方法和应用软件编程、μC/OS-Ⅱ操作系统原理及应用等知识传授给读者。

第1章 嵌入式系统概述 1

1.1 嵌入式系统简介 1

1.1.1 嵌入式系统定义 1

1.1.2 嵌入式系统特点 2

1.1.3 嵌入式系统分类 4

1.1.4 嵌入式系统发展 7

1.2 ARM体系结构及微处理器系列 10

1.2.1 ARM公司简介 10

1.2.2 ARM体系结构简介 13

1.3 Cortex-M系列处理器简介 17

1.4 STM32系列微控制器简介 21

1.5 STM32教学开发板 26

第2章 Cortex-M3体系结构 27

2.1 CM3微处理器核结构 27

2.2 处理器的工作模式及状态 29

2.3 寄存器 30

2.4 总线接口 34

2.5 存储器的组织与映射 36

2.5.1 存储器格式 36

2.5.2 存储器层次结构 36

2.5.3 CM3存储器组织 38

2.5.4 STM32存储器映射 39

2.5.5 位绑定操作 43

2.6 指令集 46

2.6.1 ARM指令集 46

2.6.2 Thumb指令集 47

2.6.3 Thumb-2指令集 48

2.7 流水线 50

2.8 异常和中断 51

2.9 存储器保护单元MPU 56

2.10 STM32微控制器概述 57

2.10.1 STM32命名 57

2.10.2 STM32内部资源 58

第3章 STM32最小系统 61

3.1 电源电路 61

3.1.1 供电方案 61

3.1.2 电源管理器 63

3.1.3 低功耗模式 63

3.2 时钟电路 65

3.2.1 HSE时钟和HSI时钟 66

3.2.2 PLL 67

3.2.3 LSE时钟和LSI时钟 67

3.2.4 系统时钟SYSCLK 68

3.2.5 RCC寄存器 69

3.3 复位电路 72

3.4 STM32启动 74

3.5 程序下载电路 79

3.6 STM32的最小系统 81

第4章 STM32程序设计 82

4.1 嵌入式软件层次结构 82

4.2 Cortex微控制器软件接口标准 84

4.3 FWLib固件库 87

4.3.1 STM32标准外设库 87

4.3.2 固件库命名规则 90

4.3.3 数据类型和结构 91

4.3.4 固件库的应用 94

4.4 嵌入式C程序特点 97

4.5 开发环境简介 100

第5章 GPIO原理及应用 102

5.1 GPIO的硬件结构和功能 102

5.1.1 GPIO硬件结构 102

5.1.2 复用功能 103

5.1.3 GPIO输入功能 103

5.1.4 GPIO输出功能 104

5.1.5 GPIO速度选择 106

5.1.6 钳位功能 107

5.2 GPIO寄存器 107

5.3 GPIO库函数 111

5.4 库函数和寄存器的关系 114

5.5 应用实例 121

第6章 EXTI原理及应用 127

6.1 STM32中断通道 127

6.2 STM32中断的过程 131

6.3 NVIC硬件结构及软件配置 132

6.3.1 NVIC硬件结构 132

6.3.2 STM32中断优先级 133

6.3.3 中断向量表 134

6.3.4 NVIC寄存器 135

6.3.5 NVIC库结构 140

6.4 EXTI硬件结构及软件配置 140

6.4.1 EXTI硬件结构 140

6.4.2 中断及事件 141

6.4.3 EXTI中断通道和中断源 142

6.4.4 EXTI寄存器 142

6.4.5 EXTI库函数 144

6.5 应用实例 145

6.5.1 按键中断 145

6.5.2 中断嵌套案例1 149

6.5.3 中断嵌套案例2 151

第7章 USART原理及应用 155

7.1 端口重映射 155

7.2 USART功能和结构 156

7.2.1 USART功能 157

7.2.2 USART结构 158

7.3 USART帧格式 160

7.4 波特率设置 162

7.5 硬件流控制 163

7.6 USART中断请求 165

7.7 USART寄存器 166

7.8 USART库函数 167

7.9 USART应用实例 169

7.9.1 直接传送方式 169

7.9.2 中断传送方式 173

7.9.3 串口Echo回应程序 174

7.9.4 利用printf()的串口编程 174

第8章 定时器原理及应用 177

8.1 STM32定时器概述 177

8.2 通用定时器TIMx功能 178

8.3 通用定时器TIMx结构 178

8.3.1 时钟源选择 180

8.3.2 时基单元 182

8.3.3 捕获和比较通道 184

8.3.4 计数器模式 186

8.3.5 定时时间的计算 187

8.3.6 定时器中断 188

8.4 通用定时器TIMx寄存器 189

8.5 通用定时器TIMx库函数 192

8.6 TIM2应用实例 192

8.6.1 秒表 192

8.6.2 输出比较案例1 195

8.6.3 输出比较案例2 199

8.6.4 PWM输出 202

8.6.5 PWM输入捕获 204

8.7 RTC的功能及结构 207

8.7.1 RTC的基本功能 208

8.7.2 RTC的内部结构 208

8.8 RTC控制寄存器 209

8.9 备份寄存器 211

8.10 电源控制寄存器 214

8.11 RTC相关的RCC寄存器 215

8.12 RTC应用实例 215

8.13 系统时钟SysTick简介 220

8.14 SysTick寄存器 221

8.14.1 控制及状态寄存器(SYSTICKCSR) 221

8.14.2 重载寄存器(SYSTICKRVR) 221

8.14.3 当前值寄存器(SYSTICKCVR) 222

8.14.4 校准值寄存器(SYSTICKCALVR) 222

8.15 SysTick应用实例 223

第9章 DMA原理及应用 225

9.1 DMA简介 225

9.2 DMA的功能及结构 228

9.2.1 DMA的功能 228

9.2.2 DMA结构 229

9.3 DMA寄存器 230

9.4 DMA库函数 232

第10章 ADC原理及应用 235

10.1 ADC的功能及结构 235

10.2 ADC的工作模式 237

10.3 数据对齐 240

10.4 ADC中断 241

10.5 ADC寄存器 241

10.6 ADC库函数 243

10.7 应用实例 245

第11章 μC/OS-II嵌入式操作系统基础 250

11.1 操作系统的功能 250

11.2 操作系统的基本概念 252

11.2.1 进程和线程 252

11.2.2 实时操作系统RTOS 254

11.2.3 其他概念 256

11.2.4 应用程序在操作系统上的执行过程 262

11.3 操作系统的分类 263

11.3.1 单体结构 263

11.3.2 层次结构 263

11.3.3 微内核结构 264

11.4 μC/OS-II简介 264

11.4.1 μC/OS-II的主要特点 264

11.4.2 μC/OS-II工作原理 265

11.4.3 μC/OS-II的程序设计模式 266

11.5 μC/OS-II移植 268

11.5.1 移植条件 269

11.5.2 移植步骤 270

11.5.3 内核头文件(OS_CPU.H) 272

11.5.4 与处理器相关的汇编代码(OS_CPU_A.ASM) 273

11.5.5 与CPU相关的C函数和钩子函数(OS_CPU_C.C) 276

第12章 μC/OS-II的内核机制 279

12.1 μC/OS-II内核结构 279

12.1.1 μC/OS-II的任务 279

12.1.2 临界代码 281

12.1.3 任务控制块 282

12.1.4 就绪表 283

12.1.5 任务的调度 284

12.1.6 中断处理 288

12.1.7 时钟节拍 289

12.1.8 任务的初始化 291

12.1.9 任务的启动 293

12.2 μC/OS-II的任务管理 294

12.2.1 创建任务 294

12.2.2 删除任务 298

12.2.3 请求删除任务 300

12.2.4 改变任务优先级 302

12.2.5 挂起任务 305

12.2.6 恢复任务 307

12.2.7 任务调度实例 308

12.3 μC/OS-II的时间管理 315

12.3.1 延时函数 315

12.3.2 恢复延时任务 317

12.3.3 系统时间 318

12.4 任务间的通信与同步 319

12.4.1 事件控制块 319

12.4.2 信号量 323

12.4.3 信号量实例 327

第13章 嵌入式系统综合设计实例 331

13.1 嵌入式系统开发过程 331

13.2 自平衡小车基本功能 333

13.3 硬件结构 334

13.3.1 电气控制系统整体结构 334

13.3.2 加速度计 335

13.3.3 陀螺仪 335

13.4 控制算法设计 335

13.4.1 角度检测算法设计 335

13.4.2 运动控制算法设计 336

附录A 嵌入式系统常用缩写和关于端口读/写的缩写表示 339

附录B Cortex-M3指令清单 346

附录C 51单片机与STM 32微控制器的比较 353

C.1 硬件:寄存器 353

C.2 硬件:存储器空间 353

C.3 硬件:堆栈 354

C.4 硬件:外设 355

C.5 硬件:异常和中断 356

C.6 软件:数据类型 357

C.7 软件:浮点 358

C.8 软件:中断服务程序 359

C.9 软件:非对齐数据 359

C.10 软件:故障异常 360

C.11 软件:设备驱动程序和CMSIS 361

C.12 软件:混用C语言和汇编程序 362

C.13 其他比较 363

附录D STM32实验板原理图 364

参考文献 365