这是一本介绍如何通过组件STM32CubeMX学习STM32系列微控制器的图书,主要利用在ST公司官网下载的STM32F10系列参考手册、数据手册以及内核资料M3权威指南进行深入、详细的讲解。
本书从市场上畅销的STM32F1系列微控制器入手,利用STM32CubeMX快速生成F1系列的开发环境,并在MDKARM软件上对代码进行进一步的修改补充,直至生成最终的开发项目。
本书将使用STM32CubeMX自带的HAL固件库进行开发。本书共分3部分,第1部分为1~6章,主要是对STM32F1系列微控制器的基础部分的开发;第2部分为7~11章,主要是对STM32F1系列微控制器的提高部分的开发;第3部分为12、13章,主要是项目实战部分,通过前面第1部分和第2部分的学习,达到整合实战的目的。
第1章走近STM321
1.1ST微控制器1
1.2了解STM32F103ZE微控制器3
1.3STM32F103ZET6 功能概述7
1.4XYDM3开发板8
1.4.1ARM公司的发展史9
1.4.2ARM 架构9
1.5思考与练习11
第2章初识STM32Cube12
2.1STM32CubeMX12
2.2安装运行环境Java13
2.3安装STM32CubeMX14
2.4STM32CubeMX软件包17
2.5安装MDKARM软件20
2.5.1下载相关软件20
2.5.2安装MDKARM软件24
2.5.3注册MDKARM28
2.6驱动安装下载29
2.6.1ST_LINK驱动安装29
2.6.2CH340驱动安装下载31
2.7例程解析32
2.7.1UM1847手册介绍32
2.7.2UM1850手册介绍36
2.8思考与练习40
第3章GPIO口实验41
3.1GPIO概述41
3.1.1GPIO功能41
3.1.2GPIO框图43
3.2GPIO复用功能重映射47
3.3新建例程48
3.4例程分析55
3.4.1源代码介绍55
3.4.2分析代码56
3.4.3添加代码71
3.4.4编译下载72
3.5思考与练习73
第4章串口通信USART74
4.1串口概述74
4.2串口特征74
4.3串口通信76
4.3.1通信概述76
4.3.2串行通信概述76
4.3.3异步通信数据帧格式77
4.3.4串口通信物理结构77
4.3.5波特率80
4.4新建例程80
4.5例程分析84
4.5.1源代码介绍84
4.5.2添加代码95
4.5.3编译下载97
4.6思考与练习98
第5章基本定时器99
5.1定时器概述99
5.2定时器功能100
5.3计数器时钟103
5.4新建例程104
5.5例程分析109
5.5.1源代码介绍109
5.5.2添加代码112
5.5.3编译下载113
5.6思考与练习114
第6章外部中断115
6.1中断介绍115
6.1.1中断概述115
6.1.2中断过程116
6.1.3中断优先级116
6.1.4中断优先级分组117
6.1.5中断分类118
6.1.6中断异常向量表118
6.2外部中断介绍120
6.2.1外部中断概述120
6.2.2外部中断框图120
6.2.3外部中断优先级121
6.3新建例程123
6.4例程分析128
6.4.1源代码介绍128
6.4.2编译下载132
6.5思考与练习134
第7章RTC实时时钟135
7.1RTC概述135
7.2RTC供电136
7.3RTC特征136
7.4RTC框图137
7.5RTC时钟源选择138
7.6新建例程140
7.7例程分析145
7.7.1源代码介绍145
7.7.2添加代码150
7.7.3编译下载151
7.8思考与练习153
第8章LCD液晶屏154
8.1液晶屏介绍154
8.2TFTLCD概念157
8.3TFTLCD特点157
8.4LCD控制器158
8.5LCD屏控制参数159
8.5.1LCD基本参数介绍159
8.5.2XYDCoretex_M3板TFTLCD屏159
8.5.3LCD驱动时序159
8.5.4LCD相关指令161
8.6FSMC介绍165
8.6.1FSMC概念165
8.6.2FSMC特点165
8.6.3FSMC接口介绍166
8.6.4地址映像167
8.6.5FSMC时序170
8.7LCD硬件设计175
8.7.1LCD原理图175
8.7.2LCD引脚分析175
8.8新建例程179
8.9例程分析184
8.9.1源代码介绍184
8.9.2添加代码192
8.9.3编译下载195
8.10思考与练习198
第9章触摸屏199
9.1触摸屏介绍199
9.2触摸屏分类199
9.3触摸屏控制器202
9.4触摸屏时序203
9.5触摸屏硬件设计205
9.5.1触摸屏原理图205
9.5.2触摸屏引脚分析205
9.6新建例程207
9.7例程分析209
9.7.1源代码介绍209
9.7.2添加代码214
9.7.3编译下载215
9.8思考与练习218
第10章ADC219
10.1ADC模块概述220
10.2ADC特性220
10.3ADC内部结构221
10.3.1ADC框图221
10.3.2ADC校准221
10.3.3ADC时序223
10.4ADC转换模式224
10.4.1单次转换模式与连续转换模式224
10.4.2扫描模式224
10.4.3间断模式224
10.5ADC工作管理配置225
10.5.1规则通道管理225
10.5.2注入通道管理225
10.5.3数据对齐226
10.5.4通道采样226
10.6新建例程227
10.7ADC例程分析230
10.7.1源代码介绍230
10.7.2添加代码234
10.7.3编译下载235
10.8思考与练习238
第11章DMA240
11.1DMA概述240
11.2DMA的处理过程241
11.2.1DMA传输数据241
11.2.2仲裁器和优先级241
11.2.3循环模式242
11.2.4存储器到存储器242
11.2.5指针增量242
11.3DMA通道242
11.4DMA中断246
11.5新建例程246
11.6DMA例程分析249
11.6.1源代码介绍249
11.6.2添加代码254
11.6.3编译下载255
11.7思考与练习257
第12章项目实战五子棋258
12.1项目的总体设计258
12.2项目的硬件设计259
12.3项目的软件设计260
12.4编码调试260
12.5项目结束266
第13章项目实战自动浇花系统267
13.1项目的总体设计267
13.2项目的硬件设计268
13.2.1电源模块269
13.2.2复位模块270
13.2.3主控芯片模块270
13.2.4下载模块270
13.2.5语音模块272
13.2.6无线模块272
13.2.7OLED屏模块272
13.3项目的软件设计274
13.4编码调试274
13.4.1土壤温湿度模块程序设计274
13.4.2USART程序设计276
13.4.3OLED屏程序设计277
13.4.4语音模块程序设计278
13.4.5WIFI模块程序设计279
13.5项目结束286
附录ASTM32F103Zx 芯片功能表288
附录BSTM32F103Zx 芯片内部时钟框图289
附录CSTM32F103Zx 时钟树290
参考文献291