单元1 入门三宝(闪灯/定时/按键) 1
1.1 开发环境的准备 1
1.1.1 硬件开发环境 1
1.1.2 软件开发环境 10
1.1.3 STM32F4的时钟和外设时钟 19
1.2 GPIO“闪灯”实验 22
1.2.1 原理介绍 23
1.2.2 编程方法 24
1.2.3 实验现象 29
1.3 GPIO寄存器的位操作 30
1.4 SYSTICK“定时”实验 31
1.4.1 原理介绍 32
1.4.2 编程方法 32
1.4.3 实验现象 34
1.5 EXTI“按键”实验 35
1.5.1 原理介绍 35
1.5.2 编程方法 37
1.5.3 实验现象 42
1.6 常用固件库函数 42
1.7 项目1:“简易电子街灯”的设计 43
1.7.1 方案设计 43
1.7.2 关键代码 44
1.7.3 实验现象 46
单元2 渐入佳境(串口/实时时钟) 47
2.1 串口 USART“回声”实验 47
2.1.1 原理介绍 47
2.1.2 编程方法 49
2.1.3 实验现象 55
2.2 RTC“实时时钟”实验 56
2.2.1 原理介绍 56
2.2.2 编程方法 56
2.2.3 实验现象 61
2.3 常用固件库函数 62
2.4 项目2:满意度评价器的设计 63
2.4.1 方案设计 63
2.4.2 编程方法 63
2.4.3 LCD1602的使用方法 66
2.4.4 实验现象 73
单元3 步步高升(STM32的定时器) 75
3.1 STM32 F4的定时器 75
3.1.1 定时器简介 75
3.1.2 定时器时钟 76
3.1.3 时基单元 77
3.1.4 输入捕获 77
3.1.5 输出比较 78
3.2 PWM“呼吸灯”实验 79
3.2.1 原理介绍 80
3.2.2 编程方法 80
3.2.3 实验现象 84
3.3 输入捕捉“超声测距”实验 84
3.3.1 原理介绍 85
3.3.2 编程方法 86
3.3.3 实验现象 90
3.4 常用固件库函数 91
3.5 项目3:高频烦率计的设计 92
3.5.1 方案设计 92
3.5.2 编程方法 92
3.5.3 实验现象 97
单元4 得心应手(模/数转换器) 99
4.1 ADC单通道采集实验 99
4.1.1 原理介绍 99
4.1.2 编程方法 101
4.1.3 实验现象 104
4.2 ADC的多通道采集实验 105
4.2.1 原理介绍 106
4.2.2 编程方法 106
4.2.3 实验现象 108
4.3 常用固件库函数 109
4.4 项目4:图形电量指示器的设计 109
4.4.1 方案设计 109
4.4.2 编程方法 110
4.4.3 实验现象 112
单元5 智能巡迹车的设计 113
5.1 硬件平台与搭建 113
5.2 总体设计 114
5.2.1 控制主板 114
5.2.2 红外检测模块 115
5.2.3 电机驱动模块 115
5.3 系统电路原理 116
5.3.1 电源电路 116
5.3.2 主控电路 116
5.3.3 电机驱动接口电路 116
5.3.4 红外光电传感模块接口 117
5.4 原理与技术 118
5.4.1 PWM调速原理 118
5.4.2 L298N驱动电路 119
5.4.3 红外光电传感器 120
5.4.4 小车巡迹方式 121
5.5 理序流理 124
5.5.1 主程序流程 124
5.5.2 调速算法汇总 125
5.5.3 关键代码 127
附录1 设备总览 132
附录2 时钟树 133
附录3 STM32F40x引脚定义 134
附录4 引脚功能映射表 145
参考文献 149