图书目录

目录

第1章概述

1.1嵌入式系统概述

1.1.1嵌入式系统的定义

1.1.2嵌入式系统的应用

1.1.3嵌入式系统的组成

1.2STM32单片机概述

1.2.1STM32单片机产品系列

1.2.2STM32F103系列单片机的内部资源

1.2.3STM32单片机命名规则

1.3嵌入式单片机的开发流程

1.3.1常用的开发工具

1.3.2STM32CubeMX新建HAL库版工程

1.3.3MDK新建HAL库版工程

1.3.4单片机的开发流程

1.4单片机的学习方法

第2章STM32单片机的内部结构

2.1系统架构和存储器组织

2.1.1系统架构

2.1.2存储器组织

2.1.3位带操作

2.1.4启动设置

2.2时钟系统

2.2.1时钟

2.2.2时钟控制HAL库函数

2.3时钟系统配置

2.3.1STM32单片机复位启动过程

2.3.2main()函数中初始化代码

2.4系统定时器SysTick

2.4.1SysTick概述

2.4.2SysTick寄存器

2.4.3SysTick HAL库函数

2.4.4SysTick延时实例

第3章STM32单片机的最小系统

3.1STM32F103C8T6单片机

3.1.1STM32F103系列单片机概述

3.1.2STM32F103C8T6引脚定义

3.1.3STM32F103C8T6片内资源

3.2STM32单片机最小系统构成

3.2.1电源电路

3.2.2复位电路

3.2.3时钟电路

3.2.4启动模式设置电路

3.2.5编程接口电路

第4章通用输入/输出的原理与应用

4.1GPIO的内部结构及特性

4.1.1输出数据源

4.1.2推挽输出和开漏输出

4.1.3保护二极管

4.1.4上拉输入和下拉输入

4.1.5输入数据的去向

4.2GPIO常见参数配置

4.2.1GPIO的输出速度

4.2.2GPIO引脚的复用和重映射

4.3GPIO的常用HAL库函数

4.3.1函数HAL_GPIO_Init()

4.3.2函数HAL_GPIO_ReadPin()

4.3.3函数HAL_GPIO_WritePin()

4.3.4函数HAL_GPIO_TogglePin()

4.3.5函数HAL_GPIO_LockPin()

4.4GPIO的相关寄存器

4.4.1端口配置低寄存器 

4.4.2端口输入数据寄存器

4.4.3端口输出数据寄存器

4.4.4端口位设置/清除寄存器

4.4.5端口位清除寄存器

4.5GPIO的应用实例

4.5.1引脚重映射功能的设置方法

4.5.2GPIO的初始化步骤

4.5.3GPIO位带操作设置方法

4.5.4GPIO应用实例

第5章外部中断的原理与应用

5.1中断概述

5.1.1中断的作用

5.1.2中断的常见术语

5.2NVIC中断管理

5.2.1抢占优先级和响应优先级

5.2.2中断优先级分组

5.2.3NVIC中断管理相关HAL函数

5.3EXTI外部中断

5.3.1中断请求信号的输入引脚

5.3.2EXTI线对应的中断函数

5.4EXTI的常用HAL库函数

5.4.1函数HAL_GPIO_EXTI_IRQHandler()

5.4.2函数HAL_GPIO_EXTI_Callback()

5.5EXTI的应用实例

5.5.1EXTI的初始化步骤

5.5.2EXTI应用实例

第6章USART的工作原理与应用

6.1串行通信基础

6.1.1并行通信与串行通信

6.1.2同步通信与异步通信

6.1.3单工与双工传输模式

6.1.4串行通信的错误校验

6.2USART的内部结构及特性

6.2.1相关引脚

6.2.2数据寄存器

6.2.3状态寄存器和控制寄存器

6.2.4波特率

6.3USART的常用HAL库函数

6.3.1函数HAL_USART_Init()

6.3.2函数HAL_USART_Transmit()

6.3.3函数HAL_UART_Init()

6.3.4函数HAL_UART_Receive_IT()

6.3.5函数HAL_UART_Transmit_IT()

6.3.6函数HAL_UART_IRQHandler()

6.4USART的常用宏

6.4.1宏__HAL_UART_ENABLE_IT()

6.4.2宏__HAL_UART_GET_FLAG()

6.4.3宏__HAL_UART_GET_IT_SOURCE()

6.4.4宏__HAL_UART_CLEAR_FLAG()

6.5USART的应用实例

6.5.1USART的初始化步骤及注意事项

6.5.2串口USART发送(轮询模式)

6.5.3串口USART接收(中断模式)

第7章通用定时器的原理与应用

7.1TIMx的内部结构及特性

7.1.1通用定时器的时钟

7.1.2时基单元

7.1.3计数初值的计算

7.1.4输入捕获模式

7.1.5PWM输出模式

7.1.6TIM1带死区互补输出模式

7.1.7TIMx的引脚设置

7.2TIMx的常用HAL库函数

7.2.1函数HAL_TIM_Base_Init()

7.2.2函数HAL_TIM_Base_MspInit()

7.2.3函数HAL_TIM_Base_Start()/HAL_TIM_Base_Stop()

7.2.4函数HAL_TIM_Base_Start_IT()/HAL_TIM_Base_Stop_IT()

7.2.5函数HAL_TIM_IRQHandler()

7.2.6函数HAL_TIM_PeriodElapsedCallback()

7.2.7函数HAL_TIM_IC_Init()

7.2.8函数HAL_TIM_IC_MspInit()

7.2.9函数HAL_TIM_IC_ConfigChannel()

7.2.10函数HAL_TIM_IC_Start_IT()/HAL_TIM_IC_Stop_IT()

7.2.11函数HAL_TIM_IC_CaptureCallback()

7.2.12函数HAL_TIM_PWM_Init()

7.2.13函数HAL_TIM_PWM_MspInit()

7.2.14函数HAL_TIM_PWM_ConfigChannel()

7.2.15函数HAL_TIM_PWM_Start()

7.2.16函数HAL_TIMEx_ConfigBreakDeadTime()

7.2.17函数HAL_TIMEx_PWMN_Start()

7.3TIMx的常用宏

7.3.1宏__HAL_TIM_ENABLE_IT()

7.3.2宏__HAL_TIM_SET_CAPTUREPOLARITY()

7.3.3宏__HAL_TIM_GET_COMPARE()

7.3.4宏__HAL_TIM_SET_COUNTER()

7.3.5宏__HAL_TIM_SET_COMPARE()

7.3.6宏__HAL_TIM_ENABLE_OCxPRELOAD()

7.4TIMx的应用实例

7.4.1通用定时功能

7.4.2输入捕获功能

7.4.3PWM输出功能

7.4.4TIM1带死区互补输出功能

第8章CAN总线接口的原理与应用

8.1CAN总线概述

8.1.1CAN总线的连接构成

8.1.2CAN总线协议

8.2STM32的bxCAN总线接口内部结构及特性

8.2.1CAN的引脚

8.2.2bxCAN的结构及通信过程

8.2.3bxCAN的主要工作模式

8.2.4STM32 bxCAN的位时序和波特率

8.2.5报文ID过滤

8.3CAN总线的常用HAL库函数

8.3.1函数HAL_CAN_Init()

8.3.2函数HAL_CAN_ConfigFilter()

8.3.3函数HAL_CAN_ActivateNotification()

8.3.4函数HAL_CAN_Start()

8.3.5函数HAL_CAN_AddTxMessage()

8.3.6函数HAL_CAN_GetRxMessage()

8.3.7函数HAL_CAN_RxFifo0FullCallback()

8.3.8函数HAL_CAN_RxFifo0MsgPendingCallback()

8.4CAN总线接口的应用实例

8.4.1CAN总线接口的初始化步骤

8.4.2CAN总线接口环回模式通信

第9章ADC的原理与应用

9.1ADC的内部结构及特性

9.1.1参考电压

9.1.2输入通道

9.1.3转换时间

9.1.4ADC的启动

9.1.5ADC产生的中断

9.1.6ADC转换值的计算

9.1.7ADC的转换模式

9.1.8DMA请求

9.2ADC的常用HAL库函数

9.2.1函数HAL_ADC_Init()

9.2.2函数HAL_ADC_ConfigChannel()

9.2.3函数HAL_ADCEx_Calibration_Start()

9.2.4函数HAL_ADC_Start()

9.2.5函数HAL_ADC_Start_DMA()

9.2.6函数HAL_ADC_GetValue()

9.2.7函数ADC_ExternalTrigConvConfig()

9.2.8函数ADC_DiscModeChannelCountConfig()

9.2.9函数ADC_DiscModeCmd()

9.3ADC的应用实例

9.3.1ADC的初始化编程步骤

9.3.2ADC单通道连续转换

第10章DMA的原理与应用

10.1DMA的内部结构及特性

10.1.1DMA请求

10.1.2DMA通道和仲裁

10.1.3DMA传输的参数

10.2DMA的常用HAL库函数

10.2.1函数HAL_DMA_Init()

10.2.2函数HAL_DMA_PollForTransfer()

10.2.3常用外设触发DMA函数

10.3DMA的常用宏

10.4DMA的应用实例

10.4.1DMA的初始化编程步骤

10.4.2ADC扫描模式的DMA传输

10.4.3TIM3_TRGO触发ADC扫描模式的DMA传输

参考文献