-
内容大纲
本书以STM32CubeIDE、STM32CubeMX+MDK Keil两种开发平台为例,介绍STM32F407芯片的系统功能和常用外设的编程开发方法,内容包括STM32软硬件开发基础、GPIO、外部中断、串行通信、定时器、LCD、PWM输出、ADC等。本书编写力求通俗易懂,针对职业教育特点,采用“项目导向、任务驱动”教学模式构建内容体系,全书由4个项目共13个任务构成,主要包括开发平台的搭建、软件的使用、基于HAL库的STM32工程创建和STM32F4系统时钟、GPIO的配置,并基于STM32F407开发板实施LED控制设计、三人抢答器设计和智能调光灯设计等。书中融入了大量互动式学习内容,读者可以扫描书中的二维码获得开发代码及解决问题的思路等。
本书附有完整的开发代码、PPT课件及思考练习答案,读者可登录华信教育资源网注册后免费下载。 -
作者介绍
-
目录
项目1 搭建STM32开发环境
任务1.1 认识STM32F4开发板
任务描述
任务学习
1.1.1 初识STM32
1.1.2 认识STM32F407芯片
1.1.3 认识STM32F4开发板
任务实施
步骤1:搜集芯片数据手册及开发板的相关资料
步骤2:查找STM32F4开发板的连接外设的引脚
任务1.2 安装STM32开发软件
任务描述
任务学习
1.2.1 STM32的开发方式
1.2.2 STM32的开发软件
任务实施
步骤1:检查Java运行环境
步骤2:安装CubeIDE软件
步骤3:安装CubeMX软件及固件包
步骤4:安装Keil MDK软件及固件包
任务1.3 创建STM32工程
任务描述
任务学习
1.3.1 认识主要项目文件及CMSIS标准
1.3.2 LED的硬件电路及其GPIO配置
任务实施1:CubeMX软件工程配置
步骤1:选芯片新建工程,认识软件界面
步骤2:配置系统时钟
步骤3:配置GPIO
步骤4:生成初始化代码
任务实施2:在Keil MDK软件中编写控制LED的代码
步骤1:认识Keil MDK软件界面,设置输出hex文件
步骤2:Keil MDK软件的几个设置技巧
步骤3:编写控制LED闪烁的代码
任务实施3:使用CubeIDE配置工程,编写代码
步骤1:创建STM32工程
步骤2:配置系统时钟和GPIO
步骤3:生成初始化代码,认识编辑界面
步骤4:编写控制LED亮灭的代码
步骤5:设置输出hex文件
任务1.4 程序下载与调试
任务描述
任务学习
1.4.1 STM32F4的程序下载方式
1.4.2 开发板的串口一键下载电路
任务实施
步骤1:安装CH340串口驱动程序
步骤2:使用FlyMcu软件实现串口下载
步骤3:安装ST-LINK驱动程序
步骤4:在Keil MDK软件中使用ST-LINK下载程序
步骤5:在CubeIDE软件中使用ST-LINK下载程序
拓展训练:声光报警器设计
项目评价
思考练习
项目2 LED控制设计
任务2.1 8位跑马灯设计
任务描述
任务学习
2.1.1 STM32F4的时钟系统及其初始化函数
2.1.2 STM32F4的GPIO及其配置
2.1.3 GPIO相关的API函数
任务实施
步骤1:8位跑马灯硬件电路设计
步骤2:CubeMX工程配置
步骤3:查看和分析项目初始化配置代码
步骤4:编写LED控制函数
步骤5:上板验证跑马灯功能
拓展训练:循环点亮RGB灯
任务2.2 按键控制LED设计
任务描述
任务学习
2.2.1 按键工作原理
2.2.2 独立按键输入检测函数设计
任务实施
步骤1:硬件电路设计
步骤2:CubeMX工程配置
步骤3:创建外设驱动文件,添加文件路径
步骤4:编写按键检测函数及LED宏函数
步骤5:实现按键控制LED设计
拓展训练:按键控制RGB灯
任务2.3 串口控制LED设计
任务描述
任务学习
2.3.1 串行通信概述
2.3.2 异步串行通信协议
2.3.3 串口操作的HAL库相关函数
技能训练1:串口发送信息
步骤1:硬件电路设计
步骤2:串口CubeMX工程配置
步骤3:复制外设驱动文件,添加文件路径
步骤4:分析串行通信配置代码
步骤5:添加串口重定向代码
步骤6:实现串口发送功能
技能训练2:串口发送及接收信息
步骤1:复制串口通信工程
步骤2:编写串口接收信息功能代码
步骤3:下载调试串口发送及接收信息功能
任务实施
步骤1:编写串口控制LED代码
步骤2:下载程序并测试串口控制LED功能
拓展训练:串口控制RGB灯
项目评价
思考练习
项目3 三人抢答器设计
任务3.1 三人抢答器按键模块设计
任务描述
任务学习
3.1.1 中断概述
3.1.2 NVIC中断优先级
3.1.3 EXTI外部中断
3.1.4 EXTI相关HAL函数
任务实施
步骤1:外部中断按键引脚配置
步骤2:CubeMX工程配置
步骤3:外部中断按键代码设计
拓展训练1:给三人抢答器添加三个选手指示灯
拓展训练2:通过外部中断方式实现按键控制RGB灯
任务3.2 三人抢答器限时抢答设计
任务描述
任务学习
3.2.1 STM32定时器概述
3.2.2 通用定时器
3.2.3 基本定时器
3.2.4 定时器的HAL驱动函数
技能训练:通用定时器设计
步骤1:通用定时器参数计算
步骤2:通用定时器CubeMX工程配置
步骤3:实现通用定时器控制LED闪烁
任务实施
步骤1:基本定时器参数计算
步骤2:基本定时器CubeMX工程配置
步骤3:限时抢答代码设计及浮点数输出
任务3.3 三人抢答器显示界面设计
任务描述
任务学习
3.3.1 TFTLCD概述
3.3.2 FSMC简介
技能训练:TFTLCD显示
步骤1:连接TFTLCD硬件电路
步骤2:TFTLCD的CubeMX工程配置
步骤3:分析代码,移植LCD驱动文件
步骤4:编写TFTLCD显示代码
任务实施
步骤1:复制工程
步骤2:编写代码
拓展训练1:在TFTLCD上显示自己设计的LOGO
拓展训练2:添加48号字体在LCD显示
项目整体实施
步骤1:三人抢答器工程配置
步骤2:移植三人抢答器显示界面代码
步骤3:下载程序,检测三人抢答器整体功能
项目评价
思考练习
项目4 智能调光灯设计
任务4.1 调光灯手动模式设计
任务描述
任务学习
4.1.1 PWM工作原理
4.1.2 PWM相关的HAL函数
任务实施
步骤1:PWM参数计算
步骤2:PWM的CubeMX工程配置
步骤3:实现按键调光灯设计
拓展训练:使用USB_LED设计按键调光灯
任务4.2 调光灯自动模式设计
任务描述
任务学习
4.2.1 STM32F4的ADC
4.2.2 光敏传感器
技能训练:光敏传感器及ADC检测
步骤1:硬件电路设计
步骤2:ADC的CubeMX工程配置
步骤3:编写光敏传感器实现代码
任务实施
步骤1:配置工程,编写ADC代码
步骤2:编写主函数代码
步骤3:下载程序,测试功能
任务4.3 汉字及图片的LCD界面设计
任务描述
任务学习
4.3.1 汉字显示原理
4.3.2 图片显示格式
技能训练1:汉字显示设计
步骤1:通过PCtoLCD 2002软件进行汉字取模
步骤2:编写显示汉字的应用函数
步骤3:编写汉字显示代码
技能训练2:图片显示设计
步骤1:添加图片显示驱动文件
步骤2:通过Image2Lcd软件进行图片取模
步骤3:编写代码实现图片显示
任务实施
步骤1:对ASCII码取模48号字符集
步骤2:在主函数中编写智能调光灯LCD显示的代码
项目整体实施
步骤1:复制工程,移植LCD文件
步骤2:添加汉字及图片的LCD界面设计相关代码
步骤3:上板测试
项目评价
思考练习
附录A 开发板部分电路原理图
参考文献
同类热销排行榜
- 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年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
