第1章 STM32F系列32位微控制器最小系统设计 1
1.1 STM32系列32位微控制器简介 1
1.2 STM32F103xx系列微控制器简介 5
1.2.1 STM32F103xx系列微控制器的主要特性 5
1.2.2 STM32F103xx系列微控制器的内部结构 6
1.3 STM32F系列32位微控制器系统板设计示例 7
1.3.1系统板简介 7
1.3.2系统板PCB图 13
第2章 工程建立、软件仿真调试与程序下载 16
2.1 STM32F的固件函数库 16
2.1.1固件函数库简介 16
2.1.2固件函数库文件夹结构 16
2.1.3与外设/单元有关的库函数 18
2.2工程建立 20
2.2.1下载ST3.00外设库 20
2.2.2进入工程建立 21
2.2.3进行选项设置 21
2.2.4进行工程相关设置 30
2.2.5设置仿真调试选项 35
2.3软件仿真调试 39
2.3.1软件仿真设置 39
2.3.2启动软件仿真 40
2.4程序下载 47
2.4.1利用串口下载程序 47
2.4.2利用J-LINK下载程序 51
2.5怎样在RAM中调试程序 56
第3章 delay和sys文件函数的使用 64
3.1 delay文件函数 64
3.1.1 delay_init函数 64
3.1.2 delay_us函数 65
3.1.3 delay_ms函数 66
3.2 sys文件函数 67
3.2.1 I/O口的位操作 67
3.2.2 Stm32_Clock_Init函数 68
3.2.3 Sys_Soft_Reset函数 70
3.2.4 Sys_S1eepDeep函数 71
3.3编程示例 73
3.3.1添加文件到工程 73
3.3.2 delay示例程序 73
3.3.3 sys示例程序清单 75
3.3.4主函数程序 78
第4章 GPIO的使用 81
4.1 STM32F GPIO简介 81
4.2 GPIO编程示例 81
4.3外部中断操作 85
4.3.1 STM32F外部中断设置 85
4.3.2外部中断操作示例程序设计 86
4.3.3外部中断操作示例程序 86
第5章 USART的使用 92
5.1 STM32F USART简介 92
5.1.1串行接口基本原理与结构 92
5.1.2 STM32F USART的基本特性 95
5.1.3 STM32F USART的操作 96
5.2 USART-USB转换 99
5.2.1 USART-USB转换模块硬件设计 99
5.2.2 USART-USB转换示例程序设计 101
5.2.3 USART-USB转换示例程序 104
5.3 USART的中断操作 109
5.3.1 USART的中断操作示例程序设计 109
5.3.2 USART的中断操作示例程序 110
5.4 USART的DMA操作 113
5.4.1 STM32F的DMA 113
5.4.2 USART的DMA操作示例程序设计 116
5.4.3 USART的DMA操作示例程序 117
第6章 ADC的使用 124
6.1 STM32F的ADC 124
6.1.1 STM32F的ADC简介 124
6.1.2 ADC模块自身相关的误差 124
6.1.3 ADC的外部输入阻抗RAIN 126
6.1.4采用独立ADC供电以及参考电压 127
6.2 ADC的DMA连续转换模式 127
6.2.1 ADC的DMA连续转换模式程序设计 127
6.2.2 ADC的DMA连续转换模式程序 129
6.3角度位移传感器的使用 134
6.3.1角度位移传感器简介 134
6.3.2角度位移传感器操作示例程序 135
第7章 DAC的使用 138
7.1 STM32F的DAC简介 138
7.2影响DAC精度的一些技术指标 138
7.2.1 DAC的转换函数 138
7.2.2 DAC的偏置误差 138
7.2.3 DAC的增益误差 139
7.2.4 DAC的微分非线性误差 140
7.2.5 DAC的积分非线性误差 140
7.2.6 DAC的绝对精度误差 141
7.3 DAC软件触发模式示例程序设计 142
7.3.1 DAC软件触发模式配置 142
7.3.2 DAC软件触发模式示例程序 142
7.4 DAC定时器触发模式示例程序设计 144
7.4.1 DAC定时器触发配置 144
7.4.2 DAC定时器触发示例程序 146
7.5 DAC三角波生成模式示例程序设计 149
7.5.1 DAC三角波生成模式配置 149
7.5.2 DAC三角波生成模式示例程序 150
第8章 定时器的使用 153
8.1 STM32F的定时器简介 153
8.2基本定时器的使用 154
8.2.1基本定时器的寄存器设置 154
8.2.2定时器的时钟 157
8.2.3基本定时器的示例程序设计 159
8.2.4基本定时器的示例程序 160
8.3定时器的输入捕获模式 163
8.3.1定时器的输入捕获模式简介 163
8.3.2定时器的输入滤波设置 164
8.3.3定时器的输入捕获模式示例程序设计 165
8.3.4定时器的输入捕获模式示例程序 166
8.4 STM32F定时器的输出比较模式 169
8.4.1定时器输出比较模式库函数 169
8.4.2定时器输出比较模式示例程序设计 170
8.4.3定时器输出比较模式示例程序 171
8.5 STM32F定时器的PWM输出 176
8.5.1 STM32F的PWM设置 176
8.5.2 STM32F的PWM示例程序设计 178
8.5.3 STM32F的PWM示例程序 179
8.6颜色传感器TCS230的使用 183
8.6.1常用的色彩传感器 183
8.6.2 TCS230可编程颜色光-频率转换器 184
8.6.3 TCS230颜色识别的参数计算 185
8.6.4 TCS230操作示例程序设计 188
8.6.5 TCS230操作示例程序 188
8.7步进电机控制 195
8.7.1 TA8435H简介 195
8.7.2 TA8435H步进电机驱动电路 196
8.7.3步进电机控制示例程序设计 197
8.7.4步进电机控制示例程序 198
8.8交流调压控制 201
8.8.1交流调压电路 201
8.8.2交流调压控制示例程序设计 202
8.8.3交流调压控制示例程序 202
第9章 看门狗的使用 207
9.1独立看门狗 207
9.1.1独立看门狗的寄存器设置 207
9.1.2独立看门狗的示例程序设计 209
9.1.3独立看门狗的示例程序 210
9.2窗口看门狗 212
9.2.1窗口看门狗的寄存器设置 212
9.2.2窗口看门狗的示例程序设计 215
9.2.3窗口看门狗的示例程序 216
第10章 FSMC的使用 220
10.1 STM32F的FSMC 220
10.1.1 STM32F的FSMC简介 220
10.1.2 FSMC内部结构和映射地址空间 221
10.1.3 FSMC总线配置步骤 222
10.2 FSMC驱动TFT LCD 224
10.2.1 TFT LCD简介 224
10.2.2 TFT LCD与STM32F的连接 224
10.2.3确定FSMC映射地址 225
10.2.4 FSMC驱动TFT LCD的示例程序设计 226
10.2.5 FSMC驱动TFT LCD的示例程序 230
第11章 SPI的使用 237
11.1 STM32F的SPI 237
11.1.1 SPI接口基本原理与结构 237
11.1.2 STM32F SPI简介 238
11.2 SPI的示例程序设计 240
11.2.1 SPI的配置步骤 240
11.2.2数字电位器MAX5413/MAX5414/MAX5415简介 240
11.2.3 SPI的示例程序 242
11.3 GPIO模拟SPI控制触摸屏 244
11.3.1触摸屏工作原理与结构 244
11.3.2采用专用芯片的触摸屏控制电路 246
11.3.3触摸屏控制示例程序设计 248
11.3.4触摸屏控制示例程序 250
11.4加速度传感器MMA7455L的使用 258
11.4.1 MMA7455L内部结构及工作原理 258
11.4.2 MMA7455L引脚功能及应用电路 259
11.4.3 MMA7455L工作模式 261
11.4.4 MMA7455L加速度校准方法 263
11.4.5 MMA7455L应用示例程序设计 264
11.4.6 MMA7455L应用示例程序 266
11.5音频编解码器VS1003的使用 267
11.5.1 VS1003简介 267
11.5.2 VS1003与STM32F连接 267
11.5.3 VS1003的常用寄存器 267
11.5.4 VS1003的寄存器读/写操作 272
11.5.5 VS1003应用示例程序设计 274
11.5.6 VS1003应用示例程序 275
11.6 MF RC522和Mifare standard卡的使用 278
11.6.1 MF RC522简介 278
11.6.2 Mifare standard卡简介 280
11.6.3 Mifare 1卡的读/写操作 283
11.6.4 MF RC522的SPI接口操作 285
11.6.5 MF RC522与Mifare 1操作示例程序设计 288
11.6.6 MF RC522与Mifare 1卡操作示例程序 292
11.7 Flash存储器W25X16的使用 294
11.7.1 W25X16简介 294
11.7.2 W25X16操作示例程序设计 295
11.7.3 W25X16操作示例程序 298
11.8 nRF24L01的使用 308
11.8.1 nRF24L01简介 308
11.8.2 nRF24L01的SPI时序 310
11.8.3 nRF24L01 SPI接口指令设置 311
11.8.4 nRF24L01的ShockBurst模式 312
11.8.5增强型ShockBurst发送/接收模式操作 315
11.8.6 nRF24L01操作示例程序设计 316
11.8.7 nRF24L01发送操作示例程序 317
11.8.8 nRF24L01接收操作示例程序 327
11.9 DDS AD9852的使用 337
11.9.1 DDS AD9852的主要技术特性 337
11.9.2 AD9852的内部结构与功能 338
11.9.3 AD9852的工作模式 341
11.9.4 AD9852的工作时序 349
11.9.5 AD9852的应用电路 352
11.9.6 AD9852操作示例程序设计 354
11.9.7 AD9852操作示例程序 354
第12章 I2 C的使用 357
12.1 STM32F的I2C 357
12.1.1 I2 C接口基本原理与结构 357
12.1.2 STM32F的I2 C简介 358
12.2 STM32F I2C的示例程序设计 359
12.2.1 STM32F的I2C初始化配置 359
12.2.2 24Cxx系列EEPROM简介 360
12.2.3 24Cxx系列EEPROM示例程序设计 363
12.2.4 24Cxx系列EEPROM示例程序 364
12.3光强检测传感器BH1750FVI的使用 372
12.3.1 BH1750FVI简介 372
12.3.2 BH1750FVI的VCC和DVI电源供应时序 373
12.3.3 BH1750FVI的I2C接口时序 374
12.3.4 BH1750FVI的示例程序设计 376
12.3.5 BH1750FVI的示例程序 376
12.4 CMOS图像传感器OV7670的使用 383
12.4.1 CMOS图像传感器OV7670简介 383
12.4.2视频帧存储器AL422B简介 384
12.4.3基于OV7670的图像采集电路 385
12.4.4 OV7670操作示例程序设计 386
12.4.5 OV7670操作示例程序 388
12.5数字调频无线电芯片TEA5767的使用 400
12.5.1数字调频无线电芯片TEA5767简介 400
12.5.2立体声耳机放大器MAX13330/13331简介 403
12.5.3数字调频无线电接收机电路 404
12.5.4 TEA5767操作示例程序设计 404
12.5.5 TEA5767操作示例程序 410
第13章 CAN的使用 412
13.1 CAN总线简介 412
13.2 STM32F的bxCAN 414
13.2.1 bxCAN的主要特点 414
13.2.2 bxCAN的工作模式 414
13.2.3 bxCAN发送报文的流程 415
13.2.4 bxCAN的报文接收 416
13.2.5 bxCAN的时间触发通信模式 417
13.2.6 bxCAN过滤器 417
13.3 STM32F外接CAN收发器 420
13.4 CAN操作示例程序设计 421
13.4.1 CAN初始化配置 421
13.4.2 CAN操作示例程序的实现 425
13.5 CAN操作示例程序 426
13.5.1节点1程序 426
13.5.2节点2程序 431
第14章 SDIO的使用 438
14.1 STM32F的SDIO简介 438
14.2 Micro SD卡 438
14.2.1 Micro SD卡简介 438
14.2.2 Micro SD卡初始化 440
14.2.3 Micro SD卡读数据块操作 440
14.2.4 Micro SD卡写数据块操作 441
14.2.5 Micro SD卡与STM32F的连接 442
14.3 Micro SD卡操作示例程序设计 443
14.3.1 SDIO操作示例程序设计 443
14.3.2 SDIO操作示例程序 445
14.4 SDIO+FatFs实现FAT文件系统 449
14.4.1 FatFs简介 449
14.4.2源代码的结构 450
14.4.3 SDIO+FatFs实现FAT文件系统程序设计 461
14.4.4 SDIO+FatFs实现FAT文件系统程序 462
参考文献 467