第1章 ARM Cortex-M3内核结构 1
1.1 ARM Cortex-M3内核简介 1
1.2 处理器的组件 1
1.3 存储器系统 3
第2章 开发环境与最小系统 5
2.1 开发环境 5
2.1.1 新建工程和添加源代码 5
2.1.2 设置工程 6
2.1.3 编译 12
2.1.4 调试 12
2.2 最小系统与启动选择 15
第3章 STM32固件库 16
3.1 STM32固件库的定义规则 16
3.1.1 固件库命名规则 16
3.1.2 代码标准 17
3.2 STM32库的层次结构 20
3.2.1 固件包 20
3.2.2 固件库文件 21
3.3 STM32库的使用 22
3.4 位带操作 25
第4章 时钟控制系统 30
4.1 时钟源 30
4.2 时钟控制系统RCC寄存器 31
4.3 系统时钟配置寄存器例程 42
4.4 主要RCC库函数介绍 44
第5章 向量中断控制器 51
5.1 处理器模式 51
5.2 异常 52
5.2.1 异常类型 52
5.2.2 优先级 53
5.2.3 中断向量表 55
5.3 NVIC寄存器 57
5.4 NVIC库函数 58
第6章 系统定时器 64
6.1 SysTick寄存器 64
6.2 SysTick寄存器开发实例 65
6.3 SysTick库函数 66
6.4 SysTick库函数开发实例 69
第7章 通用、复用及重映射I/O 71
7.1 通用、复用和重映射I/O的关系 71
7.2 通用I/O寄存器 71
7.2.1 各种输入/输出模式 71
7.2.2 相关寄存器 73
7.3 通用I/O寄存器开发实例 76
7.3.1 实例1——流水灯实验 76
7.3.2 实例2——按键实验 77
7.3.3 实例3——LCD1602的使用 78
7.4 GPIO库函数 85
7.5 GPIOx端口编程步骤 89
7.5.1 配置GPIOx端口 89
7.5.2 操作GPIOx端口 89
7.6 GPIO应用示例 90
第8章 外部中断输入 93
8.1 外部中断寄存器描述 93
8.2 外部中断寄存器开发实例 96
8.3 EXTI相关库函数 101
8.4 外部中断引脚设置 102
8.5 外部中断库函数应用示例 103
第9章 USART 107
9.1 USART概述 107
9.1.1 发送器 108
9.1.2 接收器 109
9.1.3 分数波特率发生器 111
9.1.4 USART中断请求 112
9.1.5 USART模式配置 113
9.2 USART寄存器 113
9.3 USART寄存器开发实例 119
9.4 USART库函数 121
9.5 USARTx串口编程步骤 127
9.6 USART应用示例 129
第10章 SPI 131
10.1 STM32 SPI 131
10.1.1 NSS引脚管理 133
10.1.2 主从模式选择 133
10.1.3 数据发送和接收 134
10.1.4 单工通信 134
10.1.5 关闭SPI 134
10.1.6 SPI中断 135
10.2 SPI寄存器 135
10.3 SPI寄存器开发实例 140
10.3.1 SPI基本功能 140
10.3.2 nRF24L01无线通信模块使用 143
10.4 SPI库函数解读 154
10.5 SPI库函数开发实例 160
第11章 通用定时器 165
11.1 通用定时器概述 165
11.2 通用定时器基本功能 165
11.2.1 时基单元 166
11.2.2 时钟选择 167
11.2.3 计数器模式 168
11.2.4 PWM模式 171
11.3 通用定时器寄存器 173
11.4 TIM库函数解读 186
11.5 通用定时器应用示例 197
第12章 ADC 203
12.1 ADC概述 203
12.2 转换模式 205
12.3 双ADC模式 207
12.4 ADC寄存器 210
12.5 ADC寄存器开发实例 218
12.6 ADC库函数 221
12.7 ADC应用示例 228
第13章 看门狗 231
13.1 独立看门狗 231
13.1.1 独立看门狗特性 231
13.1.2 寄存器访问时序 231
13.1.3 预分频和重装值 232
13.2 IWDG寄存器 232
13.3 窗口看门狗 234
13.3.1 窗口看门狗特性 234
13.3.2 配置窗口看门狗 234
13.4 WWDG寄存器 235
13.5 WWDG库函数 236
13.5.1 WWDG寄存器结构 236
13.5.2 WWDG库函数 236
13.6 看门狗应用示例 237
第14章 综合实例——基于STM32的智能家居系统 241
14.1 以太网数据帧结构 241
14.2 驱动程序介绍 242
14.3 嵌入式以太网智能家居硬件设计 246
14.4 嵌入式以太网串口服务器的软件设计 248
参考文献 261