《STM32F0系列Cortex M0原理与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:张燕妮主编;丁维才副主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121280863
  • 页数:260 页
图书介绍:全书共16章,分为三部分。第一部分包括第1~4章,讲解了Cortex-M0的优势,以及STM32F0软硬件开发的条件和STM32F0软件开发的固件库内容。第二部分包括第5~14章,讲解了LPC17XX的系统定时器、GPIO、NVIC、UART、I2C、SPI、ADC、DAC、PWM、定时器。第三部分包括第15、16章,是综合实例与关于RTX操作系统的高级功能介绍。

第1章 低成本单片机世界的入侵者——Cortex-M0 1

1.1 相比8位(16位)机为何要选择Cortex-M0 1

1.1.1 性能对比 2

1.1.2 8位和16位体系结构的缺点 3

1.1.3 Cortex的软件移植性 3

1.2 如何从8位机过渡到Cortex-M0 4

1.3 编程模型 7

1.3.1 处理器的模式 7

1.3.2 堆栈 8

1.3.3 内核寄存器 8

1.4 存储器模型 11

1.4.1 存储区、类型和属性 12

1.4.2 存储器系统的存储器访问次序 12

1.4.3 存储器访问的行为 13

1.4.4 软件的存储器访问顺序 13

1.5 异常模型 14

1.6 电源管理 19

1.7 指令集 20

1.8 Cortex-M0内核外设 23

1.9 STM32F0系列 23

1.10 小结 24

第2章 开发软件准备 25

2.1 MDK-ARM开发环境 25

2.1.1 μVision4IDE概述 25

2.1.2 编译、调试现有MDK工程 26

2.1.3 创建一个Keil新项目 27

2.2 仿真器 36

2.2.1 ST-Link 36

2.2.2 J-Link与U-Link2 37

2.3 WinMerge 37

2.4 小结 39

第3章 硬件基础 40

3.1 STM32F0产品特征 40

3.2 系统及存储器概述 41

3.2.1 系统构架 41

3.2.2 存储器组织 42

3.2.3 启动配置 42

3.3 电源控制(PWR) 43

3.3.1 电源 43

3.3.2 电源管理器 44

3.3.3 低功耗模式 45

3.3.4 PWR固件库 46

3.4 复位和时钟控制(RCC) 46

3.4.1 复位 46

3.4.2 时钟 47

3.4.3 低功耗模式 51

3.5 RCC固件库 52

3.6 硬件设计 53

3.7 小结 56

第4章 STM32F0的固件库 57

4.1 ARM的C语言 57

4.1.1 嵌入式C语言的几个特殊之处 57

4.1.2 寄存器访问方式总结 59

4.1.3 struct字节对齐 60

4.1.4 使用volatile 62

4.1.5 RAM中运行程序 62

4.1.6 软件结构 64

4.2 CMSIS 65

4.2.1 CMSIS主要构成 65

4.2.2 使用CMSIS 66

4.3 STM32F0xx标准外设库 67

4.3.1 标准外设库概述 67

4.3.2 STM32F0xx外设驱动文件说明 68

4.3.3 STM32F0xx的CMSIS文件说明 69

4.3.4 库文件夹说明 70

4.3.5 固件库文件 71

4.3.6 MDK ARM中使用固件库实例 74

4.4 小结 75

第5章 通用I/O(GPIO) 76

5.1 GPIO引脚与功能 76

5.1.1 引脚描述 76

5.1.2 GPIO功能描述 77

5.1.3 通用I/O(GPIO) 79

5.1.4 I/O引脚的复用功能和重映射 79

5.1.5 外部中断/唤醒线 80

5.1.6 输入配置 80

5.1.7 输出配置 80

5.1.8 复用功能配置 80

5.1.9 模拟配置 81

5.1.10 HSE或LSE引脚用作GPIO 81

5.1.11 备份域供电下GPIO引脚的使用 81

5.1.12 GPIO复用功能寄存器 81

5.2 GPIO固件库 83

5.3 GPIO应用实例 84

5.4 小结 87

第6章 中断和事件 88

6.1 嵌套向量中断控制器(NVIC) 88

6.1.1 NVIC概述 88

6.1.2 电平中断和脉冲中断 90

6.2 中断和异常向量 91

6.3 扩展中断和事件控制器(EXTI) 93

6.3.1 框图 93

6.3.2 事件管理 94

6.3.3 功能说明 94

6.3.4 外部和内部中断/事件线映像 95

6.4 EXTI固件库 96

6.5 EXTI中断实例 96

6.6 HardFault异常调试实例 98

6.7 小结 99

第7章 通用同步异步收发器(USART) 100

7.1 USART主要功能 100

7.2 STM32F0x的USART功能实现 101

7.3 USART功能描述 102

7.3.1 USART框图 102

7.3.2 USART字符描述 103

7.3.3 发送器 104

7.3.4 接收器 106

7.3.5 多机通信 110

7.3.6 Modbus通信 111

7.3.7 LIN(本地互联网络)模式 112

7.3.8 USART同步模式 113

7.3.9 单线半双工通信 114

7.3.10 RS-232硬件流控制和RS-485驱动使能 114

7.4 USART中断 116

7.5 USART固件库函数 117

7.6 基于USART实现的多个通信标准 121

7.7 接收不定长数据实例 123

7.8 小结 125

第8章 实时时钟(RTC) 126

8.1 主要特性 126

8.2 STM32F0的RTC功能实现 127

8.3 功能描述 127

8.3.1 RTC框图 127

8.3.2 被RTC控制的GPIO 128

8.3.3 时钟和预分频器 128

8.3.4 实时时钟和日历 128

8.3.5 可编程报警 129

8.3.6 RTC初始化及配置 129

8.3.7 读日历寄存器 130

8.3.8 复位过程 131

8.3.9 RTC同步 131

8.3.10 RTC参考时钟检测 131

8.3.11 RTC平滑数字校准 132

8.3.12 时间戳功能 132

8.3.13 侵入检测 132

8.3.14 校准时钟输出 133

8.3.15 报警输出 134

8.4 RTC低功耗模式 134

8.5 RTC中断 134

8.6 固件库 135

8.7 闹钟报警实例 137

8.8 小结 141

第9章 看门狗 142

9.1 STM32F0看门狗概述 142

9.2 独立看门狗(IWDG) 143

9.3 窗口看门狗(WWDG) 145

9.4 固件库 146

9.4.1 IWDGAPI 146

9.4.2 WWDG固件库 147

9.5 看门狗实例 148

9.6 小结 149

第10章 定时器 150

10.1 STM32F0定时器实现 150

10.2 功能描述 151

10.2.1 时基单元 152

10.2.2 计数器 153

10.2.3 时钟源 154

10.2.4 捕获/比较通道 155

10.2.5 输入捕获模式 156

10.2.6 强制输出模式 157

10.2.7 输出比较模式 157

10.2.8 PWM模式 158

10.2.9 互补输出和死区插入 160

10.2.10 使用刹车功能 161

10.2.11 产生六步PWM输出 162

10.2.12 编码器接口模式 163

10.3 固件库 164

10.4 SPWM实例 168

10.5 小结 171

第11章 模数转换器(ADC) 172

11.1 ADC主要特性 172

11.2 ADC功能描述 173

11.2.1 校准 174

11.2.2 ADC开关控制 174

11.2.3 ADC时钟 175

11.2.4 ADC配置 176

11.2.5 通道选择 176

11.2.6 转换模式 176

11.2.7 启动与停止转换 177

11.3 外部触发和触发极性 178

11.4 数据管理 179

11.5 低功耗特性 180

11.6 ADC中断 181

11.7 ADC固件库 181

11.8 STM32F05x(07x)的DAC与比较器 183

11.9 USB电压监测 184

11.10 小结 186

第12章 DMA控制 187

12.1 DMA主要特性 187

12.2 DMA功能描述 187

12.2.1 DMA原理 187

12.2.2 可编程的数据宽度、数据对齐方式和数据大小端 190

12.2.3 错误管理 190

12.2.4 中断 190

12.2.5 DMA请求映射 190

12.3 固件库 191

12.4 基于DMA的ADC采样 192

12.5 小结 195

第13章 串行外设接口/I2S音频(SPI/I2S) 196

13.1 简介 196

13.1.1 SPI主要特点 196

13.1.2 SPI/I2S具体功能实现 197

13.2 SPI功能描述 197

13.2.1 SPI框图 197

13.2.2 一主、一从通信 198

13.2.3 多从机通信 200

13.2.4 从机选择(NSS)的引脚管理 200

13.2.5 通信格式 201

13.2.6 SPI的初始化 202

13.2.7 数据发送和接收流程 202

13.2.8 状态标志 204

13.2.9 错误标志 204

13.3 SPI中断 205

13.4 SPI固件库 206

13.5 SPI相互通信实例 207

13.6 小结 209

第14章 I2C接口 210

14.1 I2C的主要特点 210

14.2 I2C功能描述 211

14.2.1 I2C1框图 211

14.2.2 I2C模式 212

14.2.3 I2C的初始化 212

14.2.4 数据收发 213

14.2.5 I2C从机模式 215

14.2.6 I2C主模式 217

14.3 I2C中断 219

14.4 I2C固件库 220

14.5 读/写24C02实例 221

14.6 小结 224

第15章 控制器局域网bxCAN 225

15.1 bxCAN概述 225

15.2 bxCAN工作模式 226

15.2.1 初始化模式 227

15.2.2 正常模式 227

15.2.3 睡眠模式(低功耗) 228

15.2.4 测试模式 228

15.2.5 静默模式 228

15.2.6 环回模式 228

15.2.7 环回静默模式 229

15.3 bxCAN功能描述 229

15.3.1 发送 229

15.3.2 时间触发通信模式 231

15.3.3 接收管理 231

15.3.4 标识符过滤 232

15.3.5 报文存储 233

15.3.6 错误管理 234

15.3.7 位时间特性 234

15.4 bxCAN中断 235

15.5 bxCAN固件库 235

15.6 CAN通信实例 237

15.7 小结 241

第16章 RTX实时操作系统应用 242

16.1 RTX概述 242

16.1.1 RTX任务 243

16.1.2 RTX调度 245

16.2 任务通信 247

16.2.1 事件标志 247

16.2.2 互斥量 248

16.2.3 信箱 249

16.3 RTX基础配置 251

16.4 中断任务之间的通信实例 252

16.5 小结 254

第17章 USB电源监测 255

17.1 需求分析 255

17.2 硬件设计 255

17.3 软件设计 256

17.4 小结 259