目录Contents
配套资源
第1章ARM微处理器概述1
1.1ARM简介1
1.2ARM微处理器的应用领域及特点1
1.2.1ARM微处理器的应用领域1
1.2.2ARM微处理器的特点2
1.3ARM微处理器系列2
1.4ARM微处理器结构2
1.4.1RISC结构2
1.4.2ARM微处理器的寄存器结构3
1.4.3ARM微处理器的指令结构3
1.5ARM微处理器的应用选型4
1.6本章小结4第2章STM32最小系统设计5
2.1电源电路5
2.1.1供电方案5
2.1.2电源管理器7
2.1.3低功耗模式7
2.2复位电路8
2.3STM32启动及下载8
2.4固件库9
2.4.1FWLib固件库9
2.4.2STM32标准外设库10
2.4.3固件库命名规则12
2.4.4数据类型12
2.4.5固件库的应用14
2.5新建工程及配置17
2.6寄存器操作21
2.7时钟配置22◆嵌入式系统综合实践教程——STM32体系结构、程序设计及综合实践目录2.7.1时钟树22
2.7.2时钟源24
2.7.3APB2外设时钟使能寄存器24
2.8I/O端口配置25
2.8.1I/O端口的基本情况26
2.8.2GPIO配置寄存器描述26
2.8.3端口输出数据寄存器27
2.9库函数操作27
2.9.1GPIO_Init函数28
2.9.2RCC_APB2PeriphClockCmd函数30
2.9.3控制I/O端口输出电平30
2.10程序下载及最小系统32
2.11本章小结33第3章中断系统34
3.1STM32中断和异常34
3.2与STM32中断相关的基本概念36
3.2.1中断优先级36
3.2.2NVIC37
3.2.3NVIC的中断向量优先级分组38
3.3外部中断39
3.3.1外部中断基本情况39
3.3.2配置外部中断的基本步骤40
3.4单个按键中断操作实例42
3.5多个按键中断操作实例43
3.6本章小结49第4章定时器50
4.1定时器基础知识50
4.1.1高级定时器50
4.1.2基本定时器51
4.1.3通用定时器51
4.2STM32定时器操作52
4.2.1寄存器方式操作定时器52
4.2.2库函数方式操作定时器57
4.2.3定时器初始化代码63
4.2.4代码分析和实验结果63
4.3本章小结65第5章ADC66
5.1ADC基础知识66
5.1.1ADC的主要特征66
5.1.2ADC模块框图及引脚67
5.1.3通道选择68
5.1.4ADC的转换模式68
5.2操作ADC69
5.2.1寄存器方式操作ADC69
5.2.2库函数方式操作ADC77
5.2.3ADC设置步骤83
5.3ADC操作实例83
5.3.1主程序83
5.3.2ADC初始化代码84
5.3.3代码分析和实验结果85
5.4本章小结87第6章CAN总线设计88
6.1STM32的CAN总线基础知识88
6.1.1CAN物理层特性89
6.1.2CAN的位时序92
6.1.3CAN总线仲裁93
6.1.4STM32的CAN控制器93
6.1.5STM32的CAN过滤器94
6.1.6CAN发送流程95
6.1.7CAN接收流程96
6.1.8STM32的CAN位时间特性97
6.2STM32的CAN总线操作98
6.2.1寄存器方式操作CAN总线98
6.2.2库函数方式操作CAN总线102
6.2.3CAN总线设置步骤110
6.3CAN通信示例110
6.4本章小结113第7章基础实训114
7.1实训项目1——按键控制LED亮灭114
7.1.1STM32F103微控制器GPIO端口的基本结构114
7.1.2GPIO的工作模式115
7.1.3GPIO端口编程涉及的标准外设库函数117
7.1.4硬件电路实现117
7.1.5程序设计思路117
7.1.6程序代码分析118
7.1.7拓展项目——按键控制LED闪烁频率121
7.2实训项目2——按键控制LED闪烁频率(外部中断)122
7.2.1STM32F103微控制器的中断系统122
7.2.2STM32F103微控制器的外部中断125
7.2.3外部中断编程涉及的标准外设库函数127
7.2.4硬件电路设计127
7.2.5程序设计思路128
7.2.6程序代码分析128
7.2.7拓展项目——LED显示与按键动作的同步132
7.3实训项目3——彩色LCD显示图片与文字133
7.3.1STM32F103ZE微控制器的FSMC133
7.3.2FSMC编程涉及的标准外设库函数135
7.3.3彩色LCD的驱动135
7.3.4硬件电路设计136
7.3.5程序代码分析137
7.3.6拓展项目——按键控制字符串移动141
7.4实训项目4——按键控制LED闪烁频率(定时器中断)141
7.4.1STM32F103微控制器的定时器资源141
7.4.2STM32F103微控制器的通用定时器142
7.4.3通用定时器编程涉及的STM32标准外设库函数143
7.4.4硬件电路实现143
7.4.5程序设计思路143
7.4.6程序代码分析145
7.4.7拓展项目——LED1呼吸灯(定时器中断)149
7.5实训项目5——风扇转速的PWM控制149
7.5.1脉冲宽度调制的基本原理149
7.5.2四线制散热风扇的控制方法150
7.5.3STM32通用定时器的PWM150
7.5.4STM32引脚的重映射151
7.5.5通用定时器PWM输出编程涉及的标准外设库函数151
7.5.6硬件电路设计152
7.5.7程序设计思路152
7.5.8程序代码分析153
7.6实训项目6——帆板角度与芯片温度检测155
7.6.1电阻式角度传感器的原理155
7.6.2模数转换的过程156
7.6.3模数转换的技术指标157
7.6.4逐次逼近型ADC157
7.6.5STM32F103ZE微控制器的ADC159
7.6.6ADC编程涉及的标准外设库函数161
7.6.7硬件电路设计161
7.6.8程序设计思路161
7.6.9程序代码分析162
7.6.10拓展项目——利用规则通道检测芯片内部温度与参考电压166
7.7实训项目7——帆板角度与芯片温度检测(DMA方式)167
7.7.1DMA的基本概念167
7.7.2STM32F103ZE微控制器的DMA167
7.7.3DMA编程涉及的标准外设库函数171
7.7.4硬件电路设计172
7.7.5程序设计思路172
7.7.6程序代码分析172
7.7.7拓展项目——存储器到存储器数据传输176第8章进阶实训177
8.1实训项目8——WiFi控制风扇转速并获取帆板角度177
8.1.1OSI参考模型与TCP/IP模型177
8.1.2TCP/IP相关知识点178
8.1.3WiFi及其3种工作模式179
8.1.4WiFi模块ESP8266179
8.1.5ESP8266模块的控制指令180
8.1.6硬件电路设计181
8.1.7程序设计思路181
8.1.8程序代码分析181
8.1.9使用手机端“网络调试助手”App进行遥控操作188
8.2实训项目9——基于STM32的物联网云平台温度检测189
8.2.1云服务及其分类189
8.2.2物联网云平台190
8.2.3中国移动物联网云平台OneNET191
8.2.4数据传输过程192
8.2.5本项目使用的ESP8266模块控制指令194
8.2.6在OneNET上创建设备和应用195
8.3实训项目10——平衡车设计196
8.3.1设计要求196
8.3.2设计分析196
8.3.3环境检测传感器电路设计197
8.3.4人机交互电路设计197
8.3.5MPU6050使用方法198
8.3.6软件设计204
8.4实训项目11——电子秤设计212
8.4.1设计要求212
8.4.2设计分析213
8.4.3主控制器相关电路213
8.4.4TFT液晶屏相关电路设计213
8.4.5模数转换芯片HX711相关电路设计216
8.4.6WT588D语音模块相关电路设计218
8.4.7称重传感器相关电路设计218
8.4.8软件设计思路及代码分析220
