第1章 ARM嵌入式系统之路 1
1.1 嵌入式开发经验谈 1
1.2 嵌入式开发进阶预备知识 3
1.2.1 嵌入式C语言 4
1.2.2 编程思想 28
1.3 走近ARM Cortex-M4 31
1.3.1 M4内核介绍 31
1.3.2 基于Cortex-M的CMSIS库 33
1.4 典型Kinetis系列微控制器简介 36
1.4.1 Kinetis简介 36
1.4.2 K60P144的引脚功能和硬件电路 39
1.4.3 Kinetis系列微控制器的编程介绍 52
第2章 GPIO小试牛刀 86
2.1 PORT端口控制和中断 86
2.1.1 PORT模块简介 86
2.1.2 PORT模块寄存器 87
2.1.3 PORT编程要点 93
2.1.4 PORT应用实例 94
2.2 GPIO通用I/O模块 100
2.2.1 GPIO模块简介 100
2.2.2 GPIO模块寄存器 102
2.2.3 GPIO编程要点 105
2.2.4 GPIO应用实例 105
第3章 串行通信的时序分析 125
3.1 UART串口通信 126
3.1.1 UART简介 126
3.1.2 串口时序分析 130
3.1.3 UART模块寄存器 132
3.1.4 UART应用实例 141
3.2 I2C串行通信 150
3.2.1 I2C简介 150
3.2.2 I2C时序分析 152
3.2.3 I2C模块寄存器 159
3.2.4 I2C应用实例 166
3.3 SPI串行通信 176
3.3.1 SPI简介 176
3.3.2 SPI时序分析 178
3.3.3 SPI模块寄存器 180
3.3.4 SPI应用实例 189
第4章 时钟模块 213
4.1 MCG系统时钟模块 213
4.1.1 MCG系统时钟模块简介 213
4.1.2 MCG模块寄存器 220
4.1.3 MCG编程要点 228
4.2 WDOG看门狗定时器 233
4.2.1 看门狗定时器简介 233
4.2.2 WDOG编程要点 234
4.2.3 看门狗WDOG应用实例 236
4.3 Flex定时器FTM 238
4.3.1 FTM简介 238
4.3.2 FTM模块寄存器 240
4.3.3 FTM编程要点 254
4.3.4 FTM应用实例 259
4.4 LPTMR低功耗定时器 273
4.4.1 LPTMR简介 273
4.4.2 LPTMR模块寄存器 273
4.4.3 LPTMR应用实例 278
4.5 PIT周期中断定时器 284
4.5.1 PIT简介 284
4.5.2 PIT模块寄存器 285
4.5.3 PIT应用实例 288
4.6 RTC实时时钟计数器 292
4.6.1 RTC简介 292
4.6.2 RTC编程要点 294
4.6.3 RTC应用实例 294
第5章 模数转换 299
5.1 ADC 299
5.1.1 ADC简介 299
5.1.2 ADC模块寄存器 307
5.2 DAC 319
5.2.1 DAC简介 319
5.2.2 DAC模块寄存器 321
5.2.3 DAC应用实例 327
第6章 DMA直接内存访问 330
6.1 DMA简介 330
6.2 DMA模块寄存器 334
6.3 DMA应用实例 343
第7章 Flash 350
7.1 Flash简介 350
7.2 Flash编程要点 353
7.3 Flash读写应用 358
第8章 常用总线模块 361
8.1 CAN总线 361
8.1.1 CAN简介 361
8.1.2 CAN编程要点 371
8.1.3 CAN总线应用 381
8.2 外部总线FlexBus 384
8.2.1 TFT-LCD简介 384
8.2.2 K60 FlexBus驱动LCD 388
第9章 SDHC 401
9.1 SD介绍 401
9.2 初识SDHC协议 407
9.3 SDHC关键代码分析 413
9.4 FatFS库 422
9.5 SD卡大容量读/写应用 428
第10章 USB通信模块 431
10.1 初识USB 431
10.1.1 USB简介 431
10.1.2 USB总线拓扑结构 432
10.1.3 USB信号和电气特性 433
10.1.4 USB通信模型 435
10.1.5 USB通信数据流 436
10.1.6 USB数据格式 439
10.2 USB通信应用实例 446
10.2.1 USB描述符 449
10.2.2 USB SETUP包处理 456
10.2.3 USB端点的发送和接收 459
10.2.4 虚拟串口API接口 462
参考文献 464