绪论 1
第1章 ARM概述 5
1.1 ARM 5
1.2 RISC 7
1.2.1 简介 7
1.2.2 特点 7
1.2.3 RISC和CISC的区别 9
1.2.4 CPU的发展 9
1.2.5 CPU的制造过程 11
第2章 ARM Cortex-M4的体系与架构 12
2.1 概述 12
2.2 ARMv7架构的背景和概述 13
2.3 ARM Cortex-M4内部结构 15
2.4 ARM Cortex-M4与其他Cortex-M内核比较 18
2.5 Thumb-2技术 19
2.6 流水线技术 21
2.7 ARM Cortex-M4内部总线 23
2.8 寄存器 24
2.8.1 通用寄存器 25
2.8.2 特殊功能寄存器 26
2.9 工作模式 28
2.10 异常 30
2.10.1 异常的类型 30
2.10.2 异常的进入与退出 31
2.10.3 异常的处理机制 33
2.11 MPU内存保护单元 35
2.12 ARM Cortex-M4的电源管理 44
2.13 Bitband 45
第3章 新唐M451系列 48
3.1 M451系列特性 48
3.2 M451硬件平台 56
第4章 CMSIS 58
4.1 概述 58
4.2 CMSIS的软件架构 59
4.3 CMSIS文件的规范 60
第5章 环境搭建 66
5.1 安装NuLink 66
5.2 平台的搭建 67
5.3 工程的创建与运行 68
5.4 硬件仿真 76
5.5 启动流程 79
5.6 ISP下载程序 89
第6章 通用的输入/输出口 92
6.1 模式说明 92
6.2 实验 94
6.2.1 驱动LED 94
6.2.2 按键检测 97
第7章 时钟体系 101
7.1 概述 101
7.2 实验 103
7.2.1 时钟源切换 103
7.2.2 PLL实现频率切换 108
第8章 系统定时器SysTick 111
8.1 概述 111
8.2 实验 111
8.2.1 SysTick延时 111
8.2.2 SysTick中断 114
第9章 定时器 117
9.1 概述 117
9.2 特性 117
9.3 实验 118
第10章 脉冲宽度调制 123
10.1 概述 123
10.2 特性 124
10.3 实验 125
第11章 实时时钟 130
11.1 简介 130
11.2 内部实时时钟 131
11.3 实验 131
11.3.1 显示日期与时间 131
11.3.2 警报唤醒 137
第12章 看门狗 143
12.1 概述 143
12.2 特性 144
12.3 实验 144
第13章 窗口看门狗 150
13.1 概述 150
13.2 特性 150
13.3 实验 150
第14章 串口 157
14.1 概述 157
14.2 实验 161
14.2.1 串口收发数据 161
14.2.2 编写printf函数 166
14.2.3 编写scanf函数 169
第15章 模拟/数字转换 173
15.1 概述 173
15.2 实验 176
第16章 数字/模拟转换 182
16.1 概述 182
16.2 工作原理 183
16.3 内部DAC 185
16.4 实验 189
第17章 SPI 198
17.1 概述 198
17.2 SPI Flash 203
17.2.1 W25Q16/W25Q32/W25Q64 204
17.2.2 特性 205
17.2.3 功能描述 206
17.3 SPI Flash实验 209
17.3.1 读ID 209
17.3.2 擦除扇区 214
17.3.3 擦除芯片 219
17.3.4 读写数据 223
第18章 I2C 228
18.1 概述 228
18.2 协议 228
18.3 AT24C02 231
18.4 实验 233
第19章 Flash存储控制器 243
19.1 概述 243
19.2 存储器组织 245
19.2.1 LDROM APROM和数据Flash 246
19.2.2 用户配置区 246
19.2.3 存储器映射 246
19.2.4 支持IAP的系统存储器映射 247
19.2.5 不支持IAP功能的系统内存映射 249
19.3 启动选择 250
19.4 在应用编程(IAP) 251
19.5 在系统编程(ISP) 251
19.6 实验 254
19.6.1 读写Data Flash 254
19.6.2 读写LDROM 258
19.6.3 读写APROM 261
第20章 EBI 264
20.1 概述 264
20.2 功能描述 264
20.3 实验 270
第21章 模拟比较器 281
21.1 概述 281
21.2 功能描述 281
21.3 实验 285
第22章 触摸按键 290
22.1 概述 290
22.2 功能描述 292
22.3 实验 296
第23章 循环冗余校验 305
23.1 概述 305
23.2 功能描述 308
23.3 实验 309
第24章 DMA 316
24.1 概述 316
24.2 功能描述 319
24.3 实验 325
24.3.1 基本模式 325
24.3.2 Scatter-Gather模式 331
24.3.3 串口接收数据 335
第25章 FPU 340
25.1 概述 340
25.2 功能描述 341
25.3 实验 343
第26章 DSP 347
26.1 概述 347
26.2 功能描述 347
26.3 DSP运行库的搭建 350
26.4 FFT介绍 352
26.5 实验 353
第27章 触摸屏 358
27.1 TFT技术 358
27.2 TFT中的RGB 359
27.2.1 RGB原理 361
27.2.2 RGB格式 361
27.3 触摸屏 363
27.3.1 电阻式触摸屏 366
27.3.2 触摸控制XPT2046 367
27.4 实验 372
27.4.1 颜色显示 372
27.4.2 绘制图形 381
27.4.3 坐标校准 386
27.4.4 触摸描点 398
第28章 SD卡 403
28.1 简介 403
28.2 实验 407
28.2.1 显示信息 407
28.2.2 显示容量 419
28.2.3 读写数据 422
第29章 FATFS 428
29.1 简介 428
29.2 实验 436
29.2.1 显示文件系统容量 436
29.2.2 读写文本 440
29.2.3 遍历根目录 447
29.2.4 格式化 450
第30章 文字显示 457
30.1 GB2312简介 457
30.2 ASCII简介 458
30.3 实验 464
30.3.1 取模显示字体 464
30.3.2 字库显示字体 469
第31章 位图编解码 477
31.1 简介 477
31.2 结构 479
31.3 实验 482
31.3.1 位图显示 482
31.3.2 屏幕截图 488
第32章 JPEG解码 498
32.1 简介 498
32.2 文件格式 500
32.3 解码过程 504
32.4 实验 504
第33章 GIF解码 508
33.1 简介 508
33.2 实验 509
第34章 RTOS 513
34.1 概述 513
34.2 μC/OS-Ⅱ 516
34.2.1 简介 516
34.2.2 创建工程 521
34.2.3 移植文件 526
34.3 实验 535
34.3.1 任务调度 535
34.3.2 消息通信 541
第35章 μCGUI 546
35.1 概述 546
35.2 创建工程 548
35.3 触摸移植 553
35.4 μCOS与μCGUI合并 555
35.5 实验 558
35.5.1 显示图文 558
35.5.2 自定义字体 564
35.5.3 校准参数 576
35.5.4 触摸输出 581
35.5.5 按键控制LED灯 592
第36章 无线串口 601
36.1 简介 601
36.2 星形组网 602
36.3 握手协议 603
36.3.1 向从机0~5发送数据 604
36.3.2 从从机0~5获取数据 605
36.3.3 设置模块角色 606
36.4 实验 607
附录A 开发板原理图与实物照 623
附录B 无线串口实物照 626
附录C 单片机多功能调试助手 627
附录D 无线串口调试助手 628
附录E 源代码预览 629
参考文献 631