第1篇 基础篇 3
第1章 选择开发板 3
1.1 开发板简介 3
1.2 开发板功能简介 6
第2章 走近STM32 10
2.1 认识ST M32 10
2.2 STM32与Cortex-M3的关系 13
2.3 Cortex-M3与ARM 17
第3章 认识MDK-ARM 21
3.1 开发工具介绍 21
3.2 安装MDK-ARM 22
3.3 从例程入手 26
第4章 初识固件库 36
4.1 固件库的获取 36
4.2 固件库实例 39
4.3 MISRA及代码规范 41
4.3.1 MISRA-C 2004标准 41
4.3.2 代码规范与惯例 42
4.4 CMSIS标准 47
第2篇 入门篇 53
第5章 跑马灯实验 53
5.1 例程I OToggle 53
5.2 分析例程IOToggle 59
5.3 修改例程 69
5.4 下载程序 71
5.5 完善跑马灯 74
5.6 寄存器编程 78
第6章 按键输入 81
6.1 由跑马灯说起 81
6.2 实现I/O口的输入模式 85
6.3 软件仿真 92
6.4 寄存器操作 97
第7章 外部中断 100
7.1 例程EXTI_Config 100
7.2 分析例程EXTI_Config 109
7.3 移植例程 128
7.4 硬件仿真 139
第8章 串口通信USART 145
8.1 有关USART 145
8.2 例程Printf 145
8.3 例程Polling 166
8.4 例程HyperTerminal_Interrupt 173
第9章 系统节拍时钟SysTick 183
9.1 了解SysTick 183
9.2 例程TimeBase 183
第10章 忠实的看门狗 195
10.1 独立看门狗IWDG 195
10.2 例程IWDG_Reset 196
10.3 窗口看门狗WWDG 212
10.4 例程WWDG_Reset 214
第11章 完美定时器 220
11.1 了解定时器 220
11.2 例程OCActive 222
11.3 例程PWM_Output 237
11.4 例程Parallel_Synchro 245
第12章 实时时钟RTC与备份寄存器BKP 251
12.1 备份寄存器BKP 251
12.2 例程Backup_Data 252
12.3 实时时钟RTC 264
12.4 例程Calendar 265
第13章 电源控制PWR与循环冗余校验CRC 282
13.1 电源控制PWR 282
13.2 例程STANDBY 284
13.3 循环冗余校验CRC 295
13.4 例程CRC_Calculation 296
第14章 嵌套向量中断控制器NVIC 306
14.1 了解NVIC 306
14.2 例程IRQ_Priority 307
14.3 例程IRQ_Mask 316
第15章 Cortex-M3特性之Bit-band 330
15.1 了解Bit-band 330
15.2 例程BitBand 331
15.3 操作模式和特权级别 339
15.4 例程Mode_Privilege 339
第16章 模数转换器ADC与数模转换器DAC 349
16.1 模拟数字转换器ADC 349
16.2 例程ADC1_DMA 350
16.3 例程TTIMTrigger_AutoInjection 360
16.4 数字模拟转换器DAC 370
16.5 例程TwoChannels_TriangleWave 371
第17章 DMA控制器与时钟控制器RCC 382
17.1 DMA控制器 382
17.2 例程ADC_TIM1 383
17.3 时钟控制器RCC 392
17.4 例程RCC_ClockConfig 396
第3篇 提高篇 415
第18章 I2C总线 415
18.1 了解I2C 415
18.2 STM32的I2 C接口 417
18.3 例程EEPROM 418
第19章 SPI总线 439
19.1 了解SPI 439
19.2 STM32的SPI接口 442
19.3 例程SPI_FLASH 442
第20章 I2S总线 464
20.1 了解I2S 464
20.2 STM32的I2S接口 467
20.3 例程Interrupt 469
第21章 CAN总线 487
21.1 了解CAN 487
21.2 STM32的CAN接口 496
21.3 例程LoopBack 498
第22章 SDIO接口 511
22.1 SDIO初探 511
22.2 STM32的SDIO模块 513
22.3 例程uSDCard 515
第23章 可变静态存储控制器FSMC 541
23.1 STM32之FSMC 541
23.2 例程SRAM 543
第24章 STM32内部Flash 559
24.1 认识STM32内部Flash 559
24.2 例程Program 562
附录A 修改例程的LED驱动 569
附录B 在例程中添加USART驱动 571
附录C STMF103xCDE模块框图 573
附录D STMF103xCDE时钟树 574
附录E STMF103xCDE存储器映像 575
附录F 启动文件分析 576
附录G 书籍、网站等推荐 584
参考文献 585