目录 第1章绪论 1.1嵌入式系统 1.1.1嵌入式系统概述 1.1.2嵌入式系统和通用计算机系统比较 1.1.3嵌入式系统的特点 1.2嵌入式系统的组成 1.3嵌入式系统的软件 1.3.1无操作系统的嵌入式软件 1.3.2带操作系统的嵌入式软件 1.3.3嵌入式操作系统的分类 1.3.4嵌入式实时操作系统的功能 1.3.5典型嵌入式操作系统 1.4嵌入式系统的应用领域 1.5嵌入式系统的体系 1.5.1硬件架构 1.5.2软件层次 1.6Arm嵌入式微处理器 1.6.1Arm处理器的特点 1.6.2Arm体系结构的版本和系列 1.6.3Arm的RISC结构特性 1.7嵌入式处理器的分类和特点 1.8CortexM3嵌入式微处理器 1.8.1CortexM3概述 1.8.2CortexM3处理器的主要特性 1.8.3CortexM3处理器结构 第2章STM32系列微控制器 2.1STM32微控制器概述 2.1.1STM32 微控制器产品介绍 2.1.2STM32系统性能分析 2.1.3STM32微控制器的命名规则 2.1.4STM32微控制器的选型 2.2STM32F1系列产品系统架构和STM32F103ZET6内部架构 2.2.1STM32F1系列产品系统架构 2.2.2STM32F103ZET6的内部架构 2.3STM32F103ZET6的存储器映像 2.3.1STM32F103ZET6内置外设的地址范围 2.3.2嵌入式SRAM 2.3.3嵌入式Flash 2.4STM32F103ZET6的时钟结构 2.5STM32F103VET6的引脚 2.6STM32F103VET6 最小系统设计 第3章STM32CubeMX和HAL库 3.1安装STM32CubeMX 3.2安装MCU固件包 3.2.1软件库文件夹设置 3.2.2管理嵌入式软件包 3.3软件功能与基本使用 3.3.1软件界面 3.3.2新建项目 3.3.3MCU图形化配置界面总览 3.3.4MCU配置 3.3.5时钟配置 3.3.6项目管理 3.3.7生成报告和代码 3.4HAL库 3.4.1HAL库简介 3.4.2HAL库与标准外设库和LL库的区别 3.4.3回调函数 3.4.4MSP的作用 3.4.5HAL库的基本问题 第4章嵌入式开发环境的搭建 4.1Keil MDK安装配置 4.1.1Keil MDK简介 4.1.2Keil MDK下载 4.1.3Keil MDK安装 4.1.4安装库文件 4.2Keil MDK新工程的创建 4.2.1建立文件夹 4.2.2打开Keil μVision 4.2.3新建工程 4.3Cortex微控制器软件接口标准(CMSIS) 4.4STM32F103开发板的选择 4.5STM32仿真器的选择 第5章STM32 GPIO 5.1STM32 GPIO接口概述 5.1.1输入通道 5.1.2输出通道 5.2STM32的GPIO功能 5.2.1普通I/O功能 5.2.2单独的位设置或位清除 5.2.3外部中断/唤醒线 5.2.4复用功能 5.2.5软件重新映射I/O复用功能 5.2.6GPIO锁定机制 5.2.7输入配置 5.2.8输出配置 5.2.9复用功能配置 5.2.10模拟输入配置 5.2.11STM32的GPIO操作 5.2.12外部中断映射和事件输出 5.2.13GPIO的主要特性 5.3GPIO的HAL驱动程序 5.4STM32的GPIO使用流程 5.4.1普通GPIO配置 5.4.2I/O复用功能AFIO配置 5.5采用STM32CubeMX和HAL库的GPIO输出应用实例 5.5.1STM32的GPIO输出应用硬件设计 5.5.2STM32的GPIO输出应用软件设计 5.6采用STM32CubeMX和HAL库的GPIO输入应用实例 5.6.1STM32的GPIO输入应用硬件设计 5.6.2STM32的GPIO输入应用软件设计 第6章STM32中断 6.1中断概述 6.1.1中断 6.1.2中断的功能 6.1.3中断源与中断屏蔽 6.1.4中断处理过程 6.1.5中断优先级与中断嵌套 6.2STM32F1中断系统 6.2.1STM32F1嵌套向量中断控制器 6.2.2STM32F1中断优先级 6.2.3STM32F1中断向量表 6.2.4STM32F1中断服务程序 6.3STM32F1外部中断/事件控制器 6.3.1STM32F1的 EXTI内部结构 6.3.2STM32F1的 EXTI工作原理 6.3.3STM32F1的EXTI主要特性 6.4STM32F1中断HAL驱动程序 6.4.1中断设置相关HAL驱动函数 6.4.2外部中断相关HAL函数 6.5STM32F1外部中断设计流程 6.6采用STM32CubeMX和HAL库的外部中断设计实例 6.6.1STM32F1外部中断的硬件设计 6.6.2STM32F1外部中断的软件设计 第7章STM32定时器 7.1STM32定时器概述 7.2STM32基本定时器 7.2.1基本定时器介绍 7.2.2基本定时器的功能 7.2.3STM32基本定时器的寄存器 7.3STM32通用定时器 7.3.1通用定时器介绍 7.3.2通用定时器的功能 7.3.3通用定时器的工作模式 7.3.4通用定时器的寄存器 7.4STM32定时器HAL库函数 7.4.1基础定时器 HAL驱动函数 7.4.2外设的中断处理概念小结 7.5采用STM32CubeMX和HAL库的定时器应用实例 7.5.1STM32的通用定时器配置流程 7.5.2定时器应用的硬件设计 7.5.3定时器应用的软件设计 第8章STM32通用同步/异步收发器 8.1串行通信基础 8.1.1串行异步通信数据格式 8.1.2串行同步通信数据格式 8.2STM32的USART工作原理 8.2.1USART介绍 8.2.2USART的主要特性 8.2.3USART的功能 8.2.4USART的通信时序 8.2.5USART的中断 8.2.6USART的相关寄存器 8.3USART的HAL驱动程序 8.3.1常用功能函数 8.3.2常用宏函数 8.3.3中断事件与回调函数 8.4采用STM32CubeMX和HAL库的USART串行通信应用实例 8.4.1STM32的USART配置流程 8.4.2USART串行通信应用的硬件设计 8.4.3USART串行通信应用的软件设计 第9章STM32 SPI串行总线 9.1STM32 SPI通信原理 9.1.1SPI串行总线概述 9.1.2SPI串行总线互连方式 9.2STM32F1 SPI串行总线的工作原理 9.2.1SPI串行总线的特征 9.2.2SPI串行总线的内部结构 9.2.3SPI串行总线时钟信号的相位和极性 9.2.4STM32的SPI配置 9.2.5STM32的SPI数据发送与接收过程 9.3SPI的HAL驱动程序 9.3.1SPI寄存器操作的宏函数 9.3.2SPI初始化和阻塞式数据传输 9.3.3SPI中断方式数据传输 9.3.4SPI DMA方式数据传输 9.4采用STM32CubeMX和HAL库的 SPI应用实例 9.4.1STM32的SPI配置流程 9.4.2SPI与Flash接口的硬件设计 9.4.3SPI与Flash接口的软件设计 第10章STM32 I2C串行总线 10.1STM32 I2C串行总线的通信原理 10.1.1STM32 I2C串行总线概述 10.1.2STM32 I2C串行总线的数据传输 10.2STM32 I2C串行总线接口 10.2.1STM32 I2C串行总线的主要特性 10.2.2STM32 I2C串行总线的内部结构 10.2.3STM32 I2C串行总线的功能描述 10.3I2C的HAL驱动程序 10.3.1I2C接口的初始化 10.3.2I2C阻塞式数据传输 10.3.3I2C中断方式数据传输 10.3.4I2C DMA方式数据传输 10.4采用STM32CubeMX和HAL库的 I2C应用实例 10.4.1STM32的I2C配置 10.4.2STM32 I2C与EEPROM接口的硬件设计 10.4.3STM32 I2C与EEPROM接口的软件设计 第11章STM32模数转换器 11.1模拟量输入通道 11.1.1模拟量输入通道的组成 11.1.2ADC简介 11.2模拟量输入信号类型与量程自动转换 11.2.1模拟量输入信号类型 11.2.2量程自动转换 11.3STM32F103ZET6集成的ADC模块 11.3.1STM32的ADC的主要特征 11.3.2STM32的ADC模块结构 11.3.3STM32的ADC功能 11.3.4STM32的ADC应用特征 11.4ADC的HAL驱动程序 11.4.1常规通道 11.4.2注入通道 11.4.3多重ADC 11.5采用STM32CubeMX和HAL库的ADC应用实例 11.5.1STM32的ADC配置流程 11.5.2STM32的ADC应用的硬件设计 11.5.3STM32的ADC应用的软件设计 第12章STM32 DMA控制器 12.1STM32 DMA的基本概念 12.1.1DMA的定义 12.1.2DMA在嵌入式实时系统中的价值 12.1.3DMA传输的基本要素 12.1.4DMA传输过程 12.1.5DMA的优点与应用 12.2STM32 DMA的结构和主要特征 12.3STM32 DMA的功能描述 12.3.1DMA处理 12.3.2仲裁器 12.3.3DMA通道 12.3.4DMA中断 12.4DMA的HAL驱动程序 12.4.1DMA的HAL库函数概述 12.4.2DMA传输初始化配置 12.4.3启动DMA数据传输 12.4.4DMA的中断 12.5采用STM32CubeMX和HAL库的DMA应用实例 12.5.1STM32的DMA配置流程 12.5.2DMA应用的硬件设计 12.5.3DMA应用的软件设计 参考文献