1.1 ARM处理器系列 1
1.1.1命名规则 1
1.1.2 ARM处理器系列 2
1.2 ARM Cortex-M3处理器 5
1.2.1处理器组件 5
1.2.2 Cortex-M3的层次和实现选项 6
1.2.3处理器内核 7
1.2.4嵌套向量中断控制器(NVIC) 8
1.2.5总线矩阵 8
1.2.6集成调试 9
1.2.7可选组件 9
1.2.8 Cortex-M3处理器应用 9
1.3 ARM Cortex-M3指令集 10
1.4 ARM Cortex-M3的优势 18
2.1 STM32系列微控制器简介 22
2.1.1 STM32微控制器的主要优点 22
2.1.2 STM32微控制器的应用 24
2.2 STM32F101xx系列微控制器 24
2.2.1特点 25
2.2.2总体结构 26
2.3 STM32F103xx系列微控制器 47
2.3.1特点 49
2.3.2总体结构 50
3.1存储器和总线的结构 76
3.1.1系统结构 76
3.1.2存储器结构 77
3.1.3存储器映射 77
3.1.4启动配置 81
3.2电源控制 82
3.2.1电源供应 82
3.2.2电源供应管理 83
3.2.3低功耗模式 84
3.2.4电源控制寄存器 88
3.3复位和时钟控制 90
3.3.1复位 90
3.3.2时钟 91
3.3.3 RCC寄存器描述 95
3.4通用I/O和复用I/O(GPIO和AFIO) 108
3.4.1 GPIO功能描述 108
3.4.2 GPIO寄存器描述 114
3.4.3复用功能I/O和调试配置(AFIO) 117
3.4.4 AFIO寄存器描述 121
3.5中断和事件 126
3.5.1嵌套向量中断控制器(NVIC) 126
3.5.2外部中断/事件控制器(EXTI) 128
3.5.3 EXTI寄存器 129
3.6 DMA控制器 132
3.6.1简介 132
3.6.2主要特性 132
3.6.3功能描述 133
3.6.4 DMA寄存器 136
3.7实时时钟(RTC) 141
3.7.1简介 141
3.7.2主要特性 141
3.7.3功能描述 142
3.7.4 RTC寄存器描述 144
3.8备份寄存器(BKP) 149
3.8.1简介 149
3.8.2主要特性 149
3.8.3干扰检测 150
3.8.4 RTC校验 150
3.8.5 BKP寄存器描述 150
3.9独立的看门狗 153
3.9.1简介 153
3.9.2 IWDG寄存器描述 155
3.10窗口看门狗(WWDG) 157
3.10.1简介 157
3.10.2主要特性 157
3.10.3功能描述 157
3.10.4如何编程看门狗的超时时间 158
3.10.5调试模式 158
3.10.6寄存器描述 159
3.11高级控制定时器 161
3.11.1简介 161
3.11.2主要特性 161
3.11.3框图 162
3.11.4功能描述 162
3.11.5 TIM1寄存器描述 192
3.12通用定时器(TIMx) 209
3.12.1简介 209
3.12.2主要特性 209
3.12.3框图 210
3.12.4功能描述 211
3.12.5 TIMx寄存器描述 238
3.13控制器局域网(bxCAN) 252
3.13.1简介 252
3.13.2主要特性 252
3.13.3总体描述 253
3.13.4运行模式 254
3.13.5功能描述 257
3.13.6中断 265
3.13.7寄存器访问保护 267
3.13.8 CAN寄存器描述 267
3.14内部集成电路(I2C)接口 284
3.14.1简介 284
3.14.2主要特性 285
3.14.3总体描述 286
3.14.4功能描述 287
3.14.5中断请求 296
3.14.6 I2 C调试模式 297
3.14.7 I2 C寄存器描述 297
3.15串行外设接口(SPI) 305
3.15.1简介 305
3.15.2主要特性 305
3.15.3功能描述 306
3.15.4 SPI寄存器描述 313
3.16通用同步异步收发机(USART) 318
3.16.1简介 318
3.16.2主要特性 318
3.16.3总体描述 319
3.16.4中断请求 337
3.16.5 USART寄存器描述 338
3.17 USB全速设备接口 345
3.17.1概述 345
3.17.2主要特性 346
3.17.3结构框图 346
3.17.4功能描述 347
3.17.5编程中需要考虑的问题 348
3.17.6 USB寄存器描述 356
3.18模/数转换器(ADC) 366
3.18.1概述 366
3.18.2主要特性 367
3.18.3引脚描述 367
3.18.4功能描述 368
3.18.5校准 372
3.18.6数据对齐 373
3.18.7基于通道的可编程的采样时间 373
3.18.8外部触发转换 374
3.18.9 DMA请求 374
3.18.10双ADC模式 374
3.18.11温度传感器 380
3.18.12中断 381
3.18.13 ADC寄存器描述 381
3.19调试支持(DBG) 390
3.19.1概述 390
3.19.2相关的ARM文档 391
3.19.3 SWJ调试端口(串行线和JTAG) 392
3.19.4引脚分布和调试端口引脚 392
3.19.5 STM32F10x JTAG TAP连接 395
3.19.6 ID编码和锁定机制 395
3.19.7 JTAG调试端口 396
3.19.8 SW调试端口 397
4.1 STM32固件库的定义规则 401
4.1.1固件库命名规则 401
4.1.2代码标准 402
4.2 STM32库的层次结构 406
4.2.1固件包描述 406
4.2.2固件库文件描述 407
4.3 STM32库的使用 408
5.1 Keil MDK介绍 412
5.1.1开发过程及集成开发环境简介 412
5.1.2工程管理 414
5.1.3编写源程序 421
5.1.4编译程序 425
5.1.5调试程序 426
5.2 IAR EWARM介绍 430
5.2.1 EWARM集成开发环境及配套仿真器 431
5.2.2在EWARM中生成一个新项目 434
5.2.3编译和链接应用程序 439
5.2.4用J-LINK调试应用程序 442
5.3 STM32-SK仿真评估板 447
5.3.1评估板规格说明 448
5.3.2测试程序 451
5.3.3关于仿真评估板的几个问题 456
5.4 STM32-DK开发板 457
5.4.1开发板规格说明 457
5.4.2开发板实例程序 462
5.4.3关于ST ARM的常见问题 466
5.5 mx-Pro量产编程器使用简介 466
5.5.1编程文件管理 467
5.5.2芯片烧写 472
5.6应用实例:基于STM32的数据采集器 473
5.6.1硬件设计 473
5.6.2软件设计 475
参考文献 481