第1章STM32F系列32位微控制器最小系统设计11.1STM32系列32位微控制器简介11.2STM32F103xx系列微控制器简介51.2.1STM32F103xx系列微控制器的主要特性51.2.2STM32F103xx系列微控制器的内部结构61.3STM32F系列32位微控制器系统板设计示例71.3.1系统板简介71.3.2系统板PCB图13第2章工程建立、软件仿真调试与程序下载162.1STM32F的固件函数库162.1.1固件函数库简介162.1.2固件函数库文件夹结构162.1.3与外设/单元有关的库函数182.2工程建立202.2.1下载ST3.00外设库202.2.2进入工程建立212.2.3进行选项设置212.2.4进行工程相关设置302.2.5设置仿真调试选项352.3软件仿真调试392.3.1软件仿真设置392.3.2启动软件仿真402.4程序下载472.4.1利用串口下载程序472.4.2利用JLINK下载程序512.5怎样在RAM中调试程序56第3章delay和sys文件函数的使用643.1delay文件函数643.1.1delay_init函数643.1.2delay_us函数653.1.3delay_ms函数663.2sys文件函数673.2.1I/O口的位操作673.2.2Stm32_Clock_Init函数683.2.3Sys_Soft_Reset函数703.2.4Sys_SleepDeep函数713.3编程示例733.3.1添加文件到工程733.3.2delay示例程序733.3.3sys示例程序清单753.3.4主函数程序78第4章GPIO的使用814.1STM32F GPIO简介814.2GPIO编程示例814.3外部中断操作854.3.1STM32F外部中断设置854.3.2外部中断操作示例程序设计864.3.3外部中断操作示例程序86第5章USART的使用925.1STM32F USART简介925.1.1串行接口基本原理与结构925.1.2STM32F USART的基本特性955.1.3STM32F USART的操作965.2USARTUSB转换995.2.1USARTUSB转换模块硬件设计995.2.2USARTUSB转换示例程序设计1015.2.3USARTUSB转换示例程序1045.3USART的中断操作1095.3.1USART的中断操作示例程序设计1095.3.2USART的中断操作示例程序1105.4USART的DMA操作1135.4.1STM32F的DMA1135.4.2USART的DMA操作示例程序设计1165.4.3USART的DMA操作示例程序117第6章ADC的使用1246.1STM32F的ADC1246.1.1STM32F的ADC简介1246.1.2ADC模块自身相关的误差1246.1.3ADC的外部输入阻抗RAIN1266.1.4采用独立ADC供电以及参考电压1276.2ADC的DMA连续转换模式1276.2.1ADC的DMA连续转换模式程序设计1276.2.2ADC的DMA连续转换模式程序1296.3角度位移传感器的使用1346.3.1角度位移传感器简介1346.3.2角度位移传感器操作示例程序135第7章DAC的使用1387.1STM32F的DAC简介1387.2影响DAC精度的一些技术指标1387.2.1DAC的转换函数1387.2.2DAC的偏置误差1387.2.3DAC的增益误差1397.2.4DAC的微分非线性误差1407.2.5DAC的积分非线性误差1407.2.6DAC的绝对精度误差1417.3DAC软件触发模式示例程序设计1427.3.1DAC软件触发模式配置1427.3.2DAC软件触发模式示例程序1427.4DAC定时器触发模式示例程序设计1447.4.1DAC定时器触发配置1447.4.2DAC定时器触发示例程序1467.5DAC三角波生成模式示例程序设计1497.5.1DAC三角波生成模式配置1497.5.2DAC三角波生成模式示例程序150第8章定时器的使用1538.1STM32F的定时器简介1538.2基本定时器的使用1548.2.1基本定时器的寄存器设置1548.2.2定时器的时钟1578.2.3基本定时器的示例程序设计1598.2.4基本定时器的示例程序1608.3定时器的输入捕获模式1638.3.1定时器的输入捕获模式简介1638.3.2定时器的输入滤波设置1648.3.3定时器的输入捕获模式示例程序设计1658.3.4定时器的输入捕获模式示例程序1668.4STM32F定时器的输出比较模式1698.4.1定时器输出比较模式库函数1698.4.2定时器输出比较模式示例程序设计1708.4.3定时器输出比较模式示例程序1718.5STM32F定时器的PWM输出1768.5.1STM32F的PWM设置1768.5.2STM32F的PWM示例程序设计1788.5.3STM32F的PWM示例程序1798.6颜色传感器TCS230的使用1838.6.1常用的色彩传感器1838.6.2TCS230可编程颜色光频率转换器1848.6.3TCS230颜色识别的参数计算1858.6.4TCS230操作示例程序设计1888.6.5TCS230操作示例程序1888.7步进电机控制1958.7.1TA8435H简介1958.7.2TA8435H步进电机驱动电路1968.7.3步进电机控制示例程序设计1978.7.4步进电机控制示例程序1988.8交流调压控制2018.8.1交流调压电路2018.8.2交流调压控制示例程序设计2028.8.3交流调压控制示例程序202第9章看门狗的使用2079.1独立看门狗2079.1.1独立看门狗的寄存器设置2079.1.2独立看门狗的示例程序设计2099.1.3独立看门狗的示例程序2109.2窗口看门狗2129.2.1窗口看门狗的寄存器设置2129.2.2窗口看门狗的示例程序设计2159.2.3窗口看门狗的示例程序216第10章FSMC的使用22010.1STM32F的FSMC22010.1.1STM32F的FSMC简介22010.1.2FSMC内部结构和映射地址空间22110.1.3FSMC总线配置步骤22210.2FSMC驱动TFT LCD22410.2.1TFT LCD简介22410.2.2TFT LCD与STM32F的连接22410.2.3确定FSMC映射地址22510.2.4FSMC驱动TFT LCD的示例程序设计22610.2.5FSMC驱动TFT LCD的示例程序230第11章SPI的使用23711.1STM32F 的SPI23711.1.1SPI接口基本原理与结构23711.1.2STM32F SPI简介23811.2SPI的示例程序设计24011.2.1SPI的配置步骤24011.2.2数字电位器MAX5413/MAX5414/MAX5415简介24011.2.3SPI的示例程序24211.3GPIO模拟SPI控制触摸屏24411.3.1触摸屏工作原理与结构24411.3.2采用专用芯片的触摸屏控制电路24611.3.3触摸屏控制示例程序设计24811.3.4触摸屏控制示例程序25011.4加速度传感器MMA7455L的使用25811.4.1MMA7455L内部结构及工作原理25811.4.2MMA7455L引脚功能及应用电路25911.4.3MMA7455L工作模式26111.4.4MMA7455L加速度校准方法26311.4.5MMA7455L应用示例程序设计26411.4.6MMA7455L应用示例程序26611.5音频编解码器VS1003的使用26711.5.1VS1003简介26711.5.2VS1003与STM32F连接26711.5.3VS1003的常用寄存器26711.5.4VS1003的寄存器读/写操作27211.5.5VS1003应用示例程序设计27411.5.6VS1003应用示例程序27511.6MF RC522和Mifare standard卡的使用27811.6.1MF RC522简介27811.6.2Mifare standard卡简介28011.6.3Mifare 1卡的读/写操作28311.6.4MF RC522的SPI接口操作28511.6.5MF RC522与Mifare 1操作示例程序设计28811.6.6MF RC522与Mifare 1卡操作示例程序29211.7Flash存储器W25X16的使用29411.7.1W25X16简介29411.7.2W25X16操作示例程序设计29511.7.3W25X16操作示例程序29811.8nRF24L01的使用30811.8.1nRF24L01简介30811.8.2nRF24L01的SPI时序31011.8.3nRF24L01 SPI接口指令设置31111.8.4nRF24L01的ShockBurst模式31211.8.5增强型ShockBurst发送/接收模式操作31511.8.6nRF24L01操作示例程序设计31611.8.7nRF24L01发送操作示例程序31711.8.8nRF24L01接收操作示例程序32711.9DDS AD9852的使用33711.9.1DDS AD9852的主要技术特性33711.9.2AD9852的内部结构与功能33811.9.3AD9852的工作模式34111.9.4AD9852的工作时序34911.9.5AD9852的应用电路35211.9.6AD9852操作示例程序设计35411.9.7AD9852操作示例程序354第12章I2C的使用35712.1STM32F的I2C35712.1.1I2C接口基本原理与结构35712.1.2STM32F的I2C简介35812.2STM32F I2C的示例程序设计35912.2.1STM32F的I2C初始化配置35912.2.224Cxx系列EEPROM简介36012.2.324Cxx系列EEPROM示例程序设计36312.2.424Cxx系列EEPROM示例程序36412.3光强检测传感器BH1750FVI的使用37212.3.1BH1750FVI简介37212.3.2BH1750FVI的VCC和DVI电源供应时序37312.3.3BH1750FVI的I2C接口时序37412.3.4BH1750FVI的示例程序设计 37612.3.5BH1750FVI的示例程序37612.4CMOS图像传感器OV7670的使用38312.4.1CMOS图像传感器OV7670简介38312.4.2视频帧存储器AL422B简介38412.4.3基于OV7670的图像采集电路38512.4.4OV7670操作示例程序设计38612.4.5OV7670操作示例程序38812.5数字调频无线电芯片TEA5767的使用40012.5.1数字调频无线电芯片TEA5767简介40012.5.2立体声耳机放大器MAX13330/13331简介40312.5.3数字调频无线电接收机电路40412.5.4TEA5767操作示例程序设计40412.5.5TEA5767操作示例程序410第13章CAN的使用41213.1CAN总线简介41213.2STM32F的bxCAN41413.2.1bxCAN的主要特点41413.2.2bxCAN的工作模式41413.2.3bxCAN发送报文的流程41513.2.4bxCAN的报文接收41613.2.5bxCAN的时间触发通信模式41713.2.6bxCAN过滤器41713.3STM32F外接CAN收发器42013.4CAN操作示例程序设计42113.4.1CAN初始化配置42113.4.2CAN操作示例程序的实现42513.5CAN操作示例程序42613.5.1节点1程序42613.5.2节点2程序431第14章SDIO的使用43814.1STM32F的SDIO简介43814.2Micro SD卡43814.2.1Micro SD卡简介43814.2.2Micro SD卡初始化44014.2.3Micro SD卡读数据块操作44014.2.4Micro SD卡写数据块操作44114.2.5Micro SD卡与STM32F的连接44214.3Micro SD卡操作示例程序设计44314.3.1SDIO操作示例程序设计44314.3.2SDIO操作示例程序44514.4SDIO+FatFs实现FAT文件系统44914.4.1FatFs简介44914.4.2源代码的结构45014.4.3SDIO+FatFs实现FAT文件系统程序设计46114.4.4SDIO+FatFs实现FAT文件系统程序462参考文献467