-
内容大纲
本书基于STM32F103C8T6单片机讲解了STM32单片机的内部结构、最小系统、内置外设——GPIO、EXTI、USART、通用TIM、CAN、ADC、DMA的HAL库设计及使用方法。
本书适合作为高等院校物联网、自动化、电子信息、计算机科学与技术、电子科学与技术、控制工程、通信工程、信息安全、智能科学与技术等相关专业“嵌入式控制”“单片机原理与应用”等课程的教材,也可供行业相关技术人员参考使用。 -
作者介绍
-
目录
第1章 概述
1.1 嵌入式系统概述
1.1.1 嵌入式系统的定义
1.1.2 嵌入式系统的应用
1.1.3 嵌入式系统的组成
1.2 STM32单片机概述
1.2.1 STM32单片机产品系列
1.2.2 STM32F103系列单片机的内部资源
1.2.3 STM32单片机命名规则
1.3 嵌入式单片机的开发流程
1.3.1 常用的开发工具
1.3.2 STM32CubeMX新建HAL库版工程
1.3.3 MDK新建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.1 STM32单片机复位启动过程
2.3.2 main()函数中初始化代码
2.4 系统定时器SysTick
2.4.1 SysTick概述
2.4.2 SysTick寄存器
2.4.3 SysTick HAL库函数
2.4.4 SysTick延时实例
第3章 STM32单片机的最小系统
3.1 STM32F103C8T6单片机
3.1.1 STM32F103系列单片机概述
3.1.2 STM32F103C8T6引脚定义
3.1.3 STM32F103C8T6片内资源
3.2 STM32单片机最小系统构成
3.2.1 电源电路
3.2.2 复位电路
3.2.3 时钟电路
3.2.4 启动模式设置电路
3.2.5 编程接口电路
第4章 通用输入/输出的原理与应用
4.1 GPIO的内部结构及特性
4.1.1 输出数据源
4.1.2 推挽输出和开漏输出
4.1.3 保护二极管
4.1.4 上拉输入和下拉输入
4.1.5 输入数据的去向
4.2 GPIO常见参数配置
4.2.1 GPIO的输出速度
4.2.2 GPIO引脚的复用和重映射
4.3 GPIO的常用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.4 GPIO的相关寄存器
4.4.1 端口配置低寄存器
4.4.2 端口输入数据寄存器
4.4.3 端口输出数据寄存器
4.4.4 端口位设置/清除寄存器
4.4.5 端口位清除寄存器
4.5 GPIO的应用实例
4.5.1 引脚重映射功能的设置方法
4.5.2 GPIO的初始化步骤
4.5.3 GPIO位带操作设置方法
4.5.4 GPIO应用实例
第5章 外部中断的原理与应用
5.1 中断概述
5.1.1 中断的作用
5.1.2 中断的常见术语
5.2 NVIC中断管理
5.2.1 抢占优先级和响应优先级
5.2.2 中断优先级分组
5.2.3 NVIC中断管理相关HAL函数
5.3 EXTI外部中断
5.3.1 中断请求信号的输入引脚
5.3.2 EXTI线对应的中断函数
5.4 EXTI的常用HAL库函数
5.4.1 函数HAL_GPIO_EXTI_IRQHandler()
5.4.2 函数HAL_GPIO_EXTI_Callback()
5.5 EXTI的应用实例
5.5.1 EXTI的初始化步骤
5.5.2 EXTI应用实例
第6章 USART的工作原理与应用
6.1 串行通信基础
6.1.1 并行通信与串行通信
6.1.2 同步通信与异步通信
6.1.3 单工与双工传输模式
6.1.4 串行通信的错误校验
6.2 USART的内部结构及特性
6.2.1 相关引脚
6.2.2 数据寄存器
6.2.3 状态寄存器和控制寄存器
6.2.4 波特率
6.3 USART的常用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.4 USART的常用宏
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.5 USART的应用实例
6.5.1 USART的初始化步骤及注意事项
6.5.2 串口USART发送(轮询模式)
6.5.3 串口USART接收(中断模式)
第7章 通用定时器的原理与应用
7.1 TIMx的内部结构及特性
7.1.1 通用定时器的时钟
7.1.2 时基单元
7.1.3 计数初值的计算
7.1.4 输入捕获模式
7.1.5 PWM输出模式
7.1.6 TIM1带死区互补输出模式
7.1.7 TIMx的引脚设置
7.2 TIMx的常用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.3 TIMx的常用宏
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.4 TIMx的应用实例
7.4.1 通用定时功能
7.4.2 输入捕获功能
7.4.3 PWM输出功能
7.4.4 TIM1带死区互补输出功能
第8章 CAN总线接口的原理与应用
8.1 CAN总线概述
8.1.1 CAN总线的连接构成
8.1.2 CAN总线协议
8.2 STM32的bxCAN总线接口内部结构及特性
8.2.1 CAN的引脚
8.2.2 bxCAN的结构及通信过程
8.2.3 bxCAN的主要工作模式
8.2.4 STM32 bxCAN的位时序和波特率
8.2.5 报文ID过滤
8.3 CAN总线的常用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.4 CAN总线接口的应用实例
8.4.1 CAN总线接口的初始化步骤
8.4.2 CAN总线接口环回模式通信
第9章 ADC的原理与应用
9.1 ADC的内部结构及特性
9.1.1 参考电压
9.1.2 输入通道
9.1.3 转换时间
9.1.4 ADC的启动
9.1.5 ADC产生的中断
9.1.6 ADC转换值的计算
9.1.7 ADC的转换模式
9.1.8 DMA请求
9.2 ADC的常用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.3 ADC的应用实例
9.3.1 ADC的初始化编程步骤
9.3.2 ADC单通道连续转换
第10章 DMA的原理与应用
10.1 DMA的内部结构及特性
10.1.1 DMA请求
10.1.2 DMA通道和仲裁
10.1.3 DMA传输的参数
10.2 DMA的常用HAL库函数
10.2.1 函数HAL_DMA_Init()
10.2.2 函数HAL_DMA_PollForTransfer()
10.2.3 常用外设触发DMA函数
10.3 DMA的常用宏
10.4 DMA的应用实例
10.4.1 DMA的初始化编程步骤
10.4.2 ADC扫描模式的DMA传输
10.4.3 TIM3_TRGO触发ADC扫描模式的DMA传输
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
