高职教育 > 电子信息类
ARM微控制器与嵌入式系统
书号:9787113308247 套系名称:“十四五”高等职业教育新形态一体化教材
作者:景妮琴 胡亦 吴友兰 出版日期:2024-08-01
定价:49.80 页码 / 开本:无 /16
策划编辑:王春霞 责任编辑:王春霞 彭立辉
适用专业:电子信息类 适用层次:高职教育
最新印刷时间:2024-08-01
资源下载
教学课件
教学素材
习题答案(暂无)
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
本书是“十四五”高等职业教育新形态一体化教材之一,以实际应用开发为主线,讲解了 基于ARM Cortex-M4为内核的微控制器STM32F407的开发方法。本书采用项目引领、任务驱 动的编写方式,先从开发环境的搭建开始,让读者快速进入开发角色,然后从点亮单灯、GPIO 接口、定时器、NVIC、USART、SPI、I2C、PWM、ADC,再到嵌入式系统移植,由浅入深,使读者熟悉 ARM微控制器与嵌入式系统的开发流程、STM32F4xx的固件库,以及各外设的使用方法。 本书适合作为高等职业院校学习ARM微控制器与嵌入式系统的教材,也可作为微控制器 与嵌入式系统爱好者的自学用书,以及嵌入式工程技术人员的培训用书。
本书从实际应用开发入手,以项目任务为导向,由浅入深、循序渐进地讲述微控制器 STM32F407 的开发方法、STM32F4XX 的固件库,以及外围设备的使用方法。 STM32F407 是意法半导体公司推出的基于 ARM Cortex-M4 内核的微控制器产品,其优势是相较于 M3 内核产品增加了 FPU(浮点处理单元)以及 DSP 指令,同时主频提高 了很多,能够达到 168 MHz,具有广阔的应用前景。 学习嵌入式系统设计不但需要掌握微控制器编程技术,还要具备微控制器硬件方面的理论和实践知识。 考虑到当今主流的 32 位单片机,本书选用了 STM32F407,并 设计了搭载该款微控制器的硬件平台,通过该平台完成每一个项目。 全书共十个项目:其中项目一是开发环境搭建;项目二 ~ 九是针对 STM32F407 外设的项目;项目十是针对微控制器进行的嵌入式系统移植。 在项 目 一 中, 读 者 可 了 解 ARM 历 史、 ARM 处 理 器、 STM32 微 控 制 器、STM32F407 的功能,从硬件电路认识用于嵌入式开发的开发板,完成开发环境搭建。 在项目二中,读者可熟悉 C 语言的多文件编程以及微控制器 GPIO 的工作模式、时钟,并能够建立库函数的工程模板来进行库函数开发,完成点亮单灯的任务。 在项目三中,通过使用 GPIO 实现流水灯、完成按键控制、数码管动态显示 3 个任务,帮助读者掌握 GPIO 接口开发的流程。 在项目四中,帮助读者熟悉微控制器的中断系统及定时器,利用定时器实现电子钟,并能利用外部中断为电子钟校准。 在项目五中,通过了解串口通信协议,帮助读者熟悉微控制器的 USART 外设,掌握 USART 的结构体和库函数的使用方法,并能够通过 USART 收发数据。 在项目六中,通过了解 SPI 协议以及通过 SPI 如何进行通信,帮助读者熟悉STM32 的 SPI 外设,掌握 SPI 结构体的初始化和库函数,总结 SPI 的编程要点,能够 通过 STM32 完成驱动 TFT 屏显示任务。 在项目七中,帮助读者掌握 PWM 的原理,熟悉 STM32 定时器的结构,理解STM32 的定时器生成 PWM 的原理,学会使用定时器的结构体及库函数,利用定时器 生成 PWM 波形。 在项目八中,帮助读者掌握如何使用 I 2 C 接口驱动 BH1750 获取光强。 在项目九中,帮助读者掌握如何通过 ADC 采集光敏传感器输出的电压值。 在项目十中,帮助读者掌握进行嵌入式操作系统 μC/OS-Ⅲ的移植方法。 本书提供完整的视频资料、项目案例代码等,可通过中国铁道出版社教育资源数字化平台 https: / / www. tdpress. com/ 51eds/ 下载。 本书适合作为高等职业院校学习 ARM 微控制器与嵌入式系统的教材,也可作为微控制器与嵌入式系统爱好者的自学用书,以及嵌入式工程技术人员的培训用书。 本书由景妮琴、胡亦、吴友兰编著,其中项目一、二、三、四、六、七由景妮琴编著,项目五、八、九由胡亦编著,项目十由吴友兰编著。 特别感谢北京电子科技职业学院于京 教授对本书编写的支持,同时感谢中国铁道出版社有限公司对本书的大力支持。 由于时间仓促,编者水平有限,疏漏与不妥之处在所难免,欢迎广大读者批评指正。
项目一 开发环境搭建 1 任务一 微控制器选型 1 【任务描述】 1 【相关知识】 2 一、ARM 微控制器发展历史 2 二、软件接口标准 CMSIS 2 【任务实施】 3 控制器选型 3 任务二 初识开发板硬件电路 6 【任务描述】 6 【相关知识】 6 STM32 微控制器启动模式 6 【任务实施】 6 一、了解扩展板硬件电路 6 二、了解核心板电路 8 任务三 搭建开发环境 10 【任务描述】 10 【相关知识】 10 一、MDK-ARM 10 二、JTAG 接口和 SWD 调试接口 10 【任务实施】 11 一、获取 KEIL5 安装包 11 二、安装 KEIL5 11 三、安装 STM32 芯片包 13 四、安装调试工具 15 项目总结 16 扩展阅读:华为麒麟芯片十年 攀登史 16 项目二 库函数开发初探———从点亮单灯开始 18 任务一 多文件编程 18 【任务描述】 18 【相关知识】 18 一、使用函数提高编程效率 18 二、模块化编程 20 【任务实施】 21 使用多文件编程求三角形和矩形面积 21 任务二 创建库函数工程模板 22 【任务描述】 22 【相关知识】 22 一、固件库文件 22 二、帮助文档 26 【任务实施】 27 创建库函数工程模板 27 任务三 点亮单灯 34 【任务描述】 34 【相关知识】 34 一、点亮 LED 灯的开发步骤 34 二、LED 灯的硬件电路 34 三、点亮 LED 灯的软件设计 35 【任务实施】 35 使用库函数开发点亮单灯 35 项目总结 39 扩展阅读:千里之行始于足下 39 项目三 使用 GPIO 接口完成简单开发任务 40 任务一 使用 GPIO 实现流水灯 40 【任务描述】 40 【相关知识】 40 一、GPIO 工作模式 40 二、STM32F407ZGT6 的时钟系统 45 三、GPIO 结构体及库函数 49 【任务实施】 53 通过 GPIOA 实现流水灯 53 任务二 使用 GPIO 完成按键控制 55 【任务描述】 55 【相关知识】 55 一、按键的硬件电路 55 二、按键去抖 56 三、按键控制软件设计 56 【任务实施】 57 一、使用 GPIOC0 控制按键 57 二、多个按键控制 59 任务三 数码管动态显示 60 【任务描述】 60 【相关知识】 60 一、数码管内部结构 60 二、数码管的静态显示 61 三、数码管的动态显示 62 【任务实施】 62 一、在一位数码管上轮流显示0 ~ 9 62 二、四位数码管显示不同数字 64 项目总结 67 项目拓展 67 扩展阅读:代码规范 67 项目四 利用定时器和外部中断实现电子钟校准 68 任务一 通过嵌套向量中断控制器 NVIC 设置中断参数 69 【任务描述】 69 【相关知识】 69 一、 STM32 的中断和异常 69 二、嵌套向量中断控制器 NVIC 70 三、 NVIC 结构体 73 四、 NVIC 的固件库函数 75 五、中断编程要点 75 【任务实施】 75 完成基本定时器 TIM6 的 NVIC配置 75 任务二 利用定时器实现电子钟 76 【任务描述】 76 【相关知识】 77 一、高级定时器、通用定时器、基本定时器 77 二、基本定时器的主要特性 77 三、定时器的结构体 80 四、定时器的库函数 81 五、使用基本定时器 TIM6定时 1 s 82 【任务实施】 83 一、掌握基本定时器的原理 83 二、定时器定时 1 s 83 三、定时器实现电子钟 84 任务三 利用外部中断实现电子钟的校准 87 【任务描述】 87 【相关知识】 88 一、EXTI 控制器的主要特性 88 二、使用软件中断产生外部中断 89 三、 EXTI 的结构体 90 四、 ETXI 的库函数 91 【任务实施】 92 一、配置外部中断线的相关参数 92 二、利用外部中断实现电子钟的校准 93 项目总结 98 扩展阅读:知识产权 98 项目五 通过 USART 收发数据 100 任务一 配置 USART 的参数 101 【任务描述】 101 【相关知识】 101 一、串口通信协议 101 二、USART 主要特性 104 三、USART 功能 104 四、USART 的结构体 109 五、USART 的库函数 111 【任务实施】 113 配置 USART1 的相关参数 113 任务二 通过 USART 收发数据 114 【任务描述】 114 【相关知识】 114 一、通过 USART 进行数据发送与接收原理 114 二、编程要点 114 【任务实施】 115 通过 USART1 发送、接收数据并控制 LED 灯 115 项目总结 122 扩展阅读:中国自主 CPU 发展道路———龙芯研制之路 122 项目六 使用 SPI 总线驱动 TFT 屏显示 123 任务一 设置 SPI 的相关参数 124 【任务描述】 124 【相关知识】 124 一、SPI 协议 124 二、SPI 特性 127 三、SPI 框图 127 四、 SPI 的结构体 129 五、SPI 的库函数 132 【任务实施】 133 设置 SPI 的参数,初始化 SPI1 133 任务二 STM32 驱动 TFT-LCD 屏 显示 133 【任务描述】 133 【相关知识】 133 一、TFT-LCD 屏 133 二、串行接口传输写模式和读模式 134 三、数据传输模式 136 四、显示数据 RAM 136 五、典型电路接法 136 【任务实施】 137 SPI 总线驱动 TFT-LCD 屏显示电子钟 137 项目总结 149 扩展阅读:工匠精神 149 项目七 利用定时器输出 PWM波形 151 任务一 配置定时器生成 PWM 的参数 151 【任务描述】 151 【相关知识】 151 一、PWM 简介 151 二、PWM 的应用 152 三、通用定时器的特性 154 四、通用定时器的功能 155 五、定时器的结构体 166 六、定时器的库函数 167 【任务实施】 168 配置 PWM 参数 168 任务二 通过定时器生成 PWM波形 168 【任务描述】 168 【相关知识】 168 一、定时器生成 PWM 的编程要点 168 二、定时器通道和输出端口的参数配置 169 【任务实施】 172 通过定时器生成 PWM 172 项目总结 175 扩展阅读:精益求精 175 项目八 使用 I2C 获取 BH1750光强 176 任务一 配置 I2C 参数 176 【任务描述】 176 【相关知识】 177 一、 I2C 协议 177 二、 I2C 的主要特性 180 三、 I2C 功能 181 四、 I2C 的通信过程 184 五、 I2C 的结构体 185 六、 I2C 的库函数 187 【任务实施】 191 初始化 I2C 结构体 191 任务二 使用 I2C 驱动 BH1750 获取光强 192 【任务描述】 192 【相关知识】 192 一、 BH1750 环境光强度传感器集成电路 192 二、 BH1750 结构框图 193 三、 BH1750 的测量 194 四、 BH1750 的传输时序 195 【任务实施】 196 驱动 BH1750 获取光强 196 项目总结 203 扩展阅读:柔性 OLED 显示屏 203 项目九 通过 ADC 采集电压值 204 任务一 配置 ADC 参数 204 【任务描述】 204 【相关知识】 205 一、如何实现 A/ D 转换 205 二、STM32 的 ADC 外设 207 三、ADC 的结构体 213 四、ADC 的库函数 217 【任务实施】 221 配置 ADC 相关参数 221 任务二 通过 ADC 采集电压值 221 【任务描述】 221 【相关知识】 221 一、硬件连接方式 221 二、独立模式单通道 ADC 采集编程要点 222 【任务实施】 223 通过 ADC 采集电压值 223 项目总结 226 扩展阅读:华为,正在引爆下一轮 科技革命 226 项目十 嵌入式操作系统 μC/ OS-Ⅲ的移植 227 任务一 将 μC / OS-Ⅲ移植到STM32 F407 开发板 227 【任务描述】 227 【相关知识】 227 一、嵌入式操作系统的特点 227 二、常用的嵌入式操作系统 229 三、裸机系统和多任务操作系统的区别 230 【任务实施】 232 μC/ OS-Ⅲ操作系统移植 232 任务二 在 μC / OS-Ⅲ上实现单任务 ———LED 灯闪烁 237 【任务描述】 237 【相关知识】 237 一、多任务系统 237 二、定义任务堆栈 237 【任务实施】 237 在 μC/ OS-Ⅲ上实现 LED 灯闪烁 237 项目总结 239 扩展阅读:华为鸿蒙操作系统 240
景妮琴,女,硕士,北京电子科技职业学院,副教授,北京市青年骨干教师;研究方向为嵌入式应用技术、机器学习、深度学习算法。曾荣获北京市信息化教学大赛二等奖、荣获北京市教学能力比赛二等奖。指导学生参加全国创新创业大赛荣获一等奖,指导学生参加全国大学生电子设计大赛荣获二等奖。 胡亦,男,北京电子科技职业学院副教授,北京市职业院校青年骨干教师,研究方向嵌入式开发、图像处理、深度学习算法。曾荣获北京市信息化教学大赛二等奖、荣获北京市教学能力比赛二等奖。指导学生参加全国创新创业大赛荣获一等奖,指导学生参加全国职业院校技能大赛获一等奖。 吴友兰 , 女,1978年,硕士北京电子科技职业学院,讲师,研究方向为嵌入式应用技术,荣获北京市教学能力比赛二等奖,指导学生参加全国大学生电子设计大赛荣获二等奖。
本书配有丰富的立体化资源。