内容简介
第1章 开场白
1.1 STM32处理器是什么
1.2数据长度
1.3地址空间
1.3.1大端和小端的故事
1.3.2 STM32Fxx系列处理器存储空间布局
1.4 STM32F103VET6处理器开发平台
1.5本章小结
1.6扩展阅读之CISC处理器和RISC处理器的关系
1.7扩展阅读之ARM指令集架构及ARM处理器的因缘
第2章 神奇的流水灯
2.1开发环境简介
2.2流水灯
2.2.1认识固件库
2.2.2流水灯程序分析
2.2.3流水灯测试
2.2.4 流水灯引发的思考
2.3本章小结
2.4附录1—流水灯源程序
2.5附录2—开发环境搭建
第3章 传递C语言正能量
3.1数据类型基础
3.1.1用typedef和#define定义类型
3.1.2用signed和unsigned修饰数据类型
3.1.3 volatile和强制类型转换
3.2位运算符和位运算
3.2.1按位与运算符(&)
3.2.2按位或运算符(|)
3.2.3按位取反运算符(~)
3.2.4左移和右移运算符(<<)、(>>)
3.3控制结构
3.3.1选择结构
3.3.2循环结构
3.4防止文件重复包含技巧
3.5本章小结
3.6扩展阅读之高速缓存基础知识
3.7附录一流水灯实验完整源代码
第4章GPIO入门之道
4.1 GPIO概述
4.1.1 GPIO引脚介绍
4.1.2 GPIO相关寄存器
4.1.3旧事重提——再议固件库
4.1.4 IO端口复用
4.2 LED实验
4.2.1硬件电路分析
4.2.2程序分析
4.2.3程序测试
4.3本章小结
4.4扩展阅读之APCS调用规则简述
4.5扩展阅读之STM32系列处理器固件库命名规则
第5章 中断和异常的故事
5.1 STM32F103VET6中断系统概述
5.1.1中断和异常的类型
5.1.2嵌套中断向量控制器
5.1.3中断响应函数
5.1.4中断向量表
5.2外部中断初探
5.2.1硬件电路分析
5.2.2程序分析
5.2.3程序测试
5.3 SysTick心跳实验
5.3.1程序设计及代码详解
5.3.2实例测试
5.4本章小结
5.5扩展阅读之中断和事件
第6章 探究时钟滴答的奥妙
6.1 STM32F103VET6时钟系统概述
6.1.1系统时钟树
6.1.2 SystemIni()库函数解析
6.2基本定时器的来龙去脉
6.2.1基本定时器基础实验
6.2.2基本定时器实验源程序
6.2.3基本定时器基础实验测试
6.3通用定时器原理与应用
6.3.1比较输出模式实验
6.3.2比较输出模式源程序
6.3.3比较输出模式实验测试
6.3.4 PWM输出模式实验
6.3.5 PWM输出模式源程序
6.3.6 PWM输出模式实验测试
6.4本章小结
第7章 体验UART
7.1 UART概述
7.2 UART基本特性
7.3 UART固件库
7.4 UART基础实验
7.4.1硬件电路分析
7.4.2程序设计及代码详解
7.4.3实例测试
7.4.4 UART基础实验分析
7.5 UART高级实验——可变参数函数在UART中的应用
7.5.1程序设计及代码详解
7.5.2实例测试
7.6 UART高级实验——UART重定向的应用
7.6.1程序设计及代码详解
7.6.2实例测试
7.7 UART扩展实验——UART控制LED
7.7.1程序设计及代码详解
7.7.2实例测试
7.8 UART扩展实验——获取系统时钟频率
7.9本章小结
7.10附录—UART扩展实验——获取系统时钟频率源代码
第8章DMA数据大挪移
8.1 DMA基本特性
8.2 DMA固件库
8.3 DMA存储器到存储器传输实验
8.3.1程序设计及代码详解
8.3.2实例测试
8.3.3存储器到存储器实验改进——DMA反向数据传输
8.3.4关于DMA传输通道的讨论
8.4 DMA存储器到外设传输实验
8.4.1程序设计及代码详解
8.4.2实例测试
8.5 DMA外设到存储器传输实验
8.5.1程序设计及代码详解
8.5.2实例测试
8.6本章小结
第9章 挑战启动代码
9.1汇编语言那些事儿
9.1.1 ARM指令介绍
9.1.2伪操作和伪指令介绍
9.2汇编语言程序的基本结构
9.3启动代码分析
9.4 main()函数的前生今世
9.5神奇的 Systemlnit()函数
9.6麻雀虽小五脏俱全的启动代码
9.7本章小结
第10章 对话ADC
10.1 ADC原理
10.2 ADC基本特性
10.3 ADC固件库
10.4 ADC基础实验
10.4.1程序设计及代码详解
10.4.2实例测试
10.5 ADC扩展实验——获取ADC时钟频率
10.6 ADC扩展实验——获取温度
10.7本章小结
第11章 串行Flash存储器大串烧
11.1 Flash是什么
11.2使用固件库和存储器“对话”
11.3存储器的“身份证”
11.3.1读取存储器“身份证”代码详解
11.3.2读取存储器“身份证”测试
11.3.3要致富先修路
11.3.4条条大道通罗马
11.3.5 SPI修炼秘籍
11.4向Flash存储器驱动致敬
11.4.1驱动程序的境界
11.4.2驱动前传
11.4.3驱动大课堂
11.5 Flash存储器亲密接触
11.5.1扇区擦除
11.5.2体验读写的快乐
11.6本章小结
11.7附录—嵌入式文件系统移植简介
11.8附录—SST25VF016B驱动程序汇总
第12章 问道DAC
12.1 DAC基本特性
12.2 DAC固件库
12.3 DAC基础实验
12.3.1程序设计及代码详解
12.3.2实例测试
12.4本章小结
第13章 论剑内部Flash
13.1存储器容量知多少
13.2获取存储器容量实验
13.3奇妙的电子签名
13.4论剑内部Flash存储器
13.4.1从系统启动讲起
13.4.2内部Flash存储器
13.4.3内部Flash存储器访问
13.5本章小结
第14章 玩转TFT LCD
14.1 LCD显示器和LCD控制器工作原理
14.1.1 LCD显示器概述
14.1.2 LCD接口信号
14.1.3 LCD显示原理
14.1.4静态存储器控制器(FSMC)
14.1.5 FSMC初始化
14.2 LCD基础实验
14.2.1程序设计及代码详解
14.2.2实例测试
14.3 LCD基础实验之图片显示
14.3.1如何将图片转换为C语言数组
14.3.2程序设计及代码详解
14.3.3实例测试
14.4 LCD高级实验之汉字显示
14.4.1两种常见的汉字编码
14.4.2 LCD汉字显示原理
14.4.3程序设计及代码详解
14.4.4实例测试
14.4.5 LCD显示高级技巧——可变参函数Lcd Printf的实现
14.4.6可变参函数Lcd Printf测试
14.4.7汉字区位码的思考
14.4.8实例测试
14.5本章小结
参考文献