注册 登录 进入教材巡展
#
  • #

出版时间:2025-09-28

出版社:机械工业出版社

以下为《嵌入式技术应用与开发项目教程(STM32)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 机械工业出版社
  • 9787111791836
  • 1-1
  • 562340
  • 平装
  • 2025-09-28
  • 416
内容简介
本书以“模块化”和“项目化”为导向,通过认识嵌入式技术、开发入门、GPIO控制、外部中断/事件控制器EXTI、UART串行通信、定时器控制、ADC、综合项目8个模块的14个项目和4个拓展任务,按照由浅入深的顺序,从基础项目逐步转入综合项目(来自企业)的学习,兼具实用性、可操作性和趣味性;同时,将理论知识分解为三个层次,贯穿于项目实践之前、之中和之后,在完成具体项目的过程中构建相关知识技能,提升职业能力;既适用于“教、学、做”一体化教学的实施,也适用于“个性化”教与学的开展。
本书可作为高等职业院校电子信息类、自动化类、通信类等专业的“嵌入式技术”或“微控制器技术”课程的教材,也可作为开放大学、成人教育的教材以及工程技术人员的自学用书和参考书。
目录
# 目录
前言
二维码资源索引
## 模块1 认识嵌入式技术
绪论
0.1 认识嵌入式技术
0.1.1 嵌入式系统和嵌入式设备
0.1.2 嵌入式处理器
0.1.3 ARM和ARM处理器
0.1.4 STM32微控制器
0.1.5 架构与处理器的关系
0.2 开发软件
0.2.1 STM32CubeMX
0.2.2 KEIL MDK
0.2.3 Proteus
## 模块2 开发入门
项目1 点亮一盏LED
1.1 知识准备
1.1.1 STM32F103VE和STM32F103R6微控制器
1.1.2 复位
1.1.3 引脚
1.1.4 下载程序到STM32
1.2 项目实施
1.2.1 点亮LED2(基于M3主控模块)
1.2.2 点亮LED11(基于Proteus仿真)
1.2.3 任务拓展:使LED实现闪烁
1.3 项目探究
1.3.1 STM32CubeMX生成的KEIL MDK项目结构
1.3.2 STM32CubeMX生成的主文件main.c
1.3.3 LED点亮原理
1.3.4 项目参考代码解析
1.3.5 查看HAL库的GPIO驱动函数
1.3.6 KEIL MDK快速打开头文件的方法
1.4 知识拓展
1.4.1 STM32时钟系统
1.4.2 STM32 开发工具进阶
1.5 项目小结
1.6 思考与练习
## 模块3 GPIO控制
项目2 LED流水灯
2.1 知识准备
2.1.1 STM32 GPIO
2.1.2 STM32 GPIO的工作模式
2.1.3 STM32的SYSTICK
2.1.4 GPIO HAL函数
2.2 项目实施
2.2.1 LED流水灯(基于M3主控模块)
2.2.2 LED流水灯(基于Proteus仿真)
2.2.3 任务拓展:位移运算符实现代码优化
2.3 项目探究
2.3.1 代码编译时的常见问题
2.3.2 ST-LINK方式下载程序经常遇到的问题
2.3.3 代码缩进和KEIL MDK常用图标
2.3.4 项目参考代码解析
2.4 知识拓展
2.4.1 STM32存储器组织
2.4.2 STM32启动模式详解
2.5 项目小结
2.6 思考与练习
项目3 电子门铃之按键轮询
3.1 知识准备
3.1.1 STM32 GPIO的输入模式
3.1.2 蜂鸣器用法
3.1.3 按键电路和按键消抖
3.2 项目实施
3.2.1 电子门铃之按键轮询(基于M3主控模块)
3.2.2 电子门铃之按键轮询(基于Proteus仿真)
3.3 项目探究
3.3.1 GPIO初始化与驱动手册的使用
3.3.2 GPIO HAL API用法
3.3.3 项目参考代码解析
3.4 知识拓展
3.4.1 HAL_GPIO_ReadPin()解读
3.4.2 HAL_GPIO_WritePin()解读
3.4.3 HAL_GPIO_TogglePin()解读
3.4.4 寄存器位可操作方式
3.5 项目小结
3.6 思考与练习
## 模块4 外部中断/事件控制器EXTI
项目4 电子门铃之按键中断
4.1 知识准备
4.1.1 异常和中断
4.1.2 STM32中断的抢占优先级和响应优先级
4.1.3 STM32外部中断EXTI
4.1.4 EXTI外设 HAL函数
4.2 项目实施
4.2.1 电子门铃之按键中断(基于M3主控模块)
4.2.2 电子门铃之按键中断(基于Proteus仿真电路)
4.3 项目探究
4.3.1 EXTI初始化
4.3.2 EXTI中断处理
4.3.3 HAL类型别名
4.3.4 项目参考代码解析
4.4 知识拓展
4.4.1 STM32中断服务程序和启动文件
4.4.2 EXTI框图解读
4.4.3 HAL_GPIO_EXTI_IRQHandler()解读
4.5 项目小结
4.6 思考与练习
## 模块5 UART串行通信
项目5 自报家门
5.1 知识准备
5.1.1 串行通信基础
5.1.2 STM32的通信接口和USART接口
5.1.3 M3主控模块和仿真电路的USART电路图
5.1.4 UART外设HAL函数(轮询方式)
5.2 项目实施
5.2.1 自报家门(基于M3主控模块)
5.2.2 自报家门(基于Proteus仿真电路)
5.2.3 任务拓展:使用printf()函数重定向的方法实现 UART发送
5.3 项目探究
5.3.1 USART1复用引脚配置
5.3.2 UART结构体
5.3.3 HAL_UART_Transmit()函数调用
5.3.4 HAL_GetTick()和HAL_Delay()
5.3.5 将UART发送函数重定向到printf()的用法解读
5.4 知识拓展
5.4.1 STM32F1的波特率生成
5.4.2 HAL_UART_Transmit()解读
5.5 项目小结
5.6 思考与练习
项目6 远程彩灯
6.1 知识准备
6.1.1 USART中断事件
6.1.2 UART外设标准中断接收HAL函数
6.2 项目实施
6.2.1 远程彩灯(基于M3主控模块)
6.2.2 远程彩灯(基于Proteus仿真电路)
6.3 项目探究
6.3.1 UART初始化
6.3.2 HAL_UART_Receive_IT()函数调用
6.3.3 HAL_UART_RxCpltCallback()的调用
6.3.4 项目参考代码解析
6.4 知识拓展
6.4.1 HAL_UART_Receive_IT()解读
6.4.2 UART标准中断接收处理解读
6.4.3 RXNE中断标志位的清除
6.5 项目小结
6.6 思考与练习
项目7 远程报警
7.1 知识准备
7.1.1 HAL库文件的注释信息
7.1.2 UART外设的IDLE中断接收HAL函数
7.2 项目实施
7.3 项目探究
7.3.1 HAL_UARTEx_ReceiveToIdle_IT()函数调用
7.3.2 HAL_UARTEx_RxEventCallback()回调函数的调用
7.3.3 项目参考代码解析
7.4 知识拓展
7.4.1 HAL_UARTEx_ReceiveToIdle_IT()解读
7.4.2 UART IDLE中断接收处理解读
7.4.3 清除IDLE中断标志位操作
7.4.4 UART外设的HAL宏
7.5 项目小结
7.6 思考与练习
## 模块6 定时器控制
项目8 整点报时音
8.1 知识准备
8.1.1 认识STM32的定时器
8.1.2 STM32F1的定时器时钟
8.1.3 STM32定时器的时基(Time Base)单元
8.1.4 STM32 定时时长的计算
8.1.5 STM32的基础定时 HAL函数
8.2 项目实施
8.2.1 整点报时音(基于M3主控模块)
8.2.2 整点报时音(基于Proteus仿真)
8.3 项目探究
8.3.1 TIM外设结构体(仅TIM_Base)
8.3.2 TIME BASE初始化
8.3.3 TIME BASE计数器和中断启停函数调用
8.3.4 TIME BASE中断处理
8.3.5 项目参考代码解析
8.4 知识拓展
8.4.1 TIME BASE计数器和中断启停函数解读
8.4.2 TIME BASE更新中断标志位的清除
8.5 项目小结
8.6 思考与练习
项目9 简易八音盒
9.1 知识准备
9.1.1 STM32定时器的影子寄存器
9.1.2 自动装载值和预分频系数的修改
9.1.3 音乐的音符与频率
9.2 项目实施
9.2.1 简易八音盒(基于M3主控模块)
9.2.2 简易八音盒(基于Proteus仿真电路)
9.2.3 任务拓展:TIM控制LED慢闪与快闪切换
9.3 项目探究
9.3.1 项目参考代码解析
9.3.2 任务拓展参考代码解析
9.4 知识拓展
9.4.1 STM32定时器的TRGO事件
9.4.2 STM32定时器的主从模式
9.4.3 STM32定时器的ITRx
9.4.4 STM32定时器的通道模式
9.4.5 通用和高级TIM时钟源
9.5 项目小结
9.6 思考与练习
项目10 呼吸灯
10.1 知识准备
10.1.1 PWM技术
10.1.2 使用PWM模式实现LED呼吸灯
10.1.3 捕获/比较寄存器(TIMx_CCRx)的影子寄存器
10.1.4 PWM模式HAL API
10.2 项目实施
10.2.1 呼吸灯(基于M3主控模块)
10.2.2 呼吸灯(基于Proteus仿真电路)
10.3 项目探究
10.3.1 TIM PWM复用引脚及工作模式
10.3.2 TIM PWM初始化
10.3.3 TIM PWM参数设置
10.3.4 HAL_TIM_PWM_Start与__HAL_TIM_SET_COMPARE用法
10.3.5 项目参考代码解析
10.4 知识拓展
10.4.1 KEIL MDK内部仿真器用法
10.4.2 HAL_TIM_PWM_Start()解读
10.4.3 HAL_TIM_PWM_Stop()解读
10.5 项目小结
10.6 思考与练习
## 模块7 ADC
项目11 STM32芯片温度检测
11.1 知识准备
11.1.1 认识STM32的ADC外设
11.1.2 ADC通道
11.1.3 STM32F1的ADC电气特性
11.1.4 ADC时钟
11.1.5 单次模式下的规则转换和注入转换
11.1.6 STM32F1 ADC的采样时间和转换时间
11.1.7 轮询方式下ADC外设HAL函数
11.2 项目实施
11.2.1 STM32芯片温度检测(基于M3主控模块)
11.2.2 STM32内部参考电压检测(基于Proteus仿真)
11.3 项目探究
11.3.1 ADC外设结构体
11.3.2 ADC外设HAL函数调用(轮询方式)
11.3.3 规则转换与注入转换的关系
11.3.4 STM32F1的内部温度传感器和内部参考电压值
11.3.5 数据左对齐与右对齐
11.3.6 项目配置与参考代码解析
11.4 知识拓展
11.4.1 HAL_ADC_Start()解读
11.4.2 HAL_ADC_PollForConversion()解读
11.4.3 HAL_ADC_GetValue()解读
11.4.4 HAL_ADCEx_InjectedStart()解读
11.4.5 HAL_ADCEx_InjectedPollFor-Conversion()解读
11.4.6 HAL_ADCEx_InjectedGetValue()解读
11.4.7 ADC规则转换的连续模式和HAL_ADC_Stop()解读
11.4.8 ADC注入转换的自动注入
11.4.9 HAL_ADC_InjectedStop()解读
11.5 项目小结
11.6 思考与练习
项目12 光照监测
12.1 知识准备
12.1.1 ADC中断
12.1.2 ADC外设HAL函数(中断方式)
12.1.3 ADC外部事件触发
12.2 项目实施
12.2.1 光照监测(基于M3主控模块)
12.2.2 光照监测(基于Proteus仿真)
12.3 项目探究
12.3.1 ADC复用引脚及工作模式
12.3.2 ADC外设初始化
12.3.3 ADC外设HAL函数用法(中断方式)
12.3.4 ADC中断处理函数
12.3.5 ADC的TIM事件触发
12.3.6 项目参考代码解析
12.4 知识拓展
12.4.1 中断方式启停规则转换和注入转换HAL函数解读
12.4.2 ADC的扫描模式
12.4.3 ADC的间断模式和多ADC模式
12.5 项目小结
12.6 思考与练习
## 模块8 综合项目
项目13 锂电池电源管理
13.1 知识准备
13.1.1 项目介绍
13.1.2 项目电路图解读
13.2 项目实施
13.2.1 锂电池电源管理之电量检测功能
13.2.2 锂电池电源管理之低电量报警功能
13.2.3 锂电池电源管理之阈值可调功能
13.3 项目探究
13.3.1 项目参考代码结构解析
13.3.2 项目参考代码解析
13.4 项目小结
13.5 思考与练习
项目14 停车场车位探测
14.1 知识准备
14.1.1 超声波HC-SR04模块
14.1.2 RS485串行通信总线标准
14.1.3 拨码开关
14.2 项目实施
14.2.1 项目介绍
14.2.2 停车场车位探测(基于M3主控模块)
14.3 项目探究
14.3.1 项目参考代码结构解析
14.3.2 拨码开关地址设置与地址读取代码解析
14.3.3 超声波测距原理与超声波代码解析
14.3.4 RS485通信与数据收发代码解析
14.4 知识拓展
14.4.1 HAL_TIM_IC_Start_IT()和HAL_TIM_IC_Stop_IT()解读
14.4.2 定时器输入捕获中断处理解读
14.4.3 企业嵌入式系统开发流程
14.5 项目小结
14.6 思考与练习
## 附录
附录A Proteus电路图和M3主控模块外观
附录B 术语表
附录C 重要操作方法索引表
参考文献