书馨卡帮你省薪
欢迎光临中图网 请 | 注册
> >
ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发

作者:黄克亚
出版社:清华大学出版社出版时间:2024-04-01
开本: 其他 页数: 440
中 图 价:¥56.1(7.1折) 定价  ¥79.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发 版权信息

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发 本书特色

全书共18章,分为三篇:**篇(第1~3章)为系统平台模块,介绍嵌入式系统定义、嵌入式硬件平台和软件环境;第二篇(第4~10章)为基本外设模块,介绍STM32嵌入式系统常用的外设模块,包括GPIO、中断、定时器、PWM和嵌入式系统接口技术;第三篇(第11~18章)为扩展外设模块,介绍STM32嵌入式系统高级外设模块和典型的传感器,包括USART、SPI、W25Q128、I2C、EEPROM、ADC、DMA、DAC、RTC、DHT11等。 系统论述基于STM32CubeMX的HAL开发方法。 以读者认知过程为导向编排组织书中章节内容。 项目引领,任务驱动,培养读者工程实践能力。 构建立体化的教学资源,便于课程教学与项目开发。 从体系结构到编程开发|从硬件平台到案例设计嵌入式开发实战经验分享|嵌入式课程教学经验总结1000分钟原创视频|18章精美课件|15万行程序代码孙立宁 苏州大学特聘教授、俄罗斯工程院院士★ 嵌入式系统百花齐放、百家争鸣。STM32系列微处理器异军突起,成为嵌入式系统课程教学的主流。《ARM Cortex-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发》独树一帜,理论与实践并重,共性与个性兼顾,先引导读者循序渐进学习基础知识,然后逐步完成复杂的系统设计,带领读者开启美妙的嵌入式系统开发之旅。 吴国伟 大连理工大学软件学院院长★ 《ARM Cortex-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发》旨在传承51单片机经典,发扬ARM嵌入式芯片长处,助推MCU升级。ARM嵌入式系统实际上是8位单片机的扩展,但是其高性能特性必然对应于更复杂的系统设计。借助8位单片机的理念、方法和案例,可以提高读者的学习兴趣,轻松入门。 宋廷强 青岛科技大学信息科学技术学院副院长★ 《ARM Cortex-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发》根据读者认知规律组织书中各章内容,先讲硬件后讲软件,由浅入深,循序渐进。全书遵循理论够用,重在实践,易于上手的原则,培养读者的学习兴趣,激发读者的学习动力;对复杂的嵌入式项目娓娓道来,条理清晰,令人赏心悦目。 李永华 北京邮电大学通信工程学院教授★ 《ARM Cortex-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发》采取项目引领,任务驱动的方式,强调“教”“学”“做”一体化,注重读者工程实践能力的培养。对于每一个典型外设模块,在简明扼要阐述原理后,解释其设计思想,并给出完整的工程应用实例。 韩勇 中国移动苏州分公司嵌入式系统高级工程师★ 《ARM Cortex-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发》突出的特点就是紧跟时代步伐,选用性能强劲的STM32F4微控制器,采用基于CubeMX的HAL开发方式,从实战角度论述其设计思路、编程技巧和控制算法。该书提供教学课件、教学视频、教学大纲、程序代码和实验素材等全方位、立体化的教学资源,轻松助力嵌入式系统的教学与项目开发。 本书旨在传承51经典,发扬ARM长处,助推MCU升级;以学生认知过程为导向组织教材内容,项目引领,全案例教学,着重培养学生实践应用能力。也可以由出版社拟宣传词

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发 内容简介

本书旨在传承51经典,发扬 ARM 长处,助推微控制器升级,以学生认知过程为导向组织内容,采取项目引领,全案例 教学的方式,着重培养学生实践应用能力。本书详细阐述了基于 ARM Cortex-M4内核的STM32F407微控制器嵌入式系 统硬件设计方法和软件开发技术。全书共有18章,划分为三部分:**部分(第1~3章)为系统平台模块,分别讲述嵌入 式系统定义、嵌入式硬件平台和软件环境配置与使用入门;第二部分(第4~10章)为基本外设模块,分别对 STM32嵌入 式系统*常用的外设模块进行介绍,包括 GPIO、中断、定时器、PWM 和嵌入式系统接口技术;第三部分(第11~18章)为 扩展外设模块,分别对 STM32 嵌入式系统高级外设模块和典型传感器进行 讲 解,包 括 USART、SPI、W25Q128、I2C、 EEPROM、ADC、DMA、DAC、RTC和 DHT11等。 本书适合作为高等院校计算机、自动化、电子信息、机电一体化、物联网等专业高年级本科生或研究生嵌入式相关课 程的教材,同时可供从事嵌入式开发的技术和研究人员参考。

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发 目录

**篇 系 统 平 台 第1章 ARMCortex-M4嵌入式系统 ……………………………………………………………………… 2 1.1 嵌入式系统概述 …………………………………………………………………………………… 2 1.1.1 什么是嵌入式系统 ……………………………………………………………………… 2 1.1.2 嵌入式系统和通用计算机比较 ………………………………………………………… 3 1.1.3 嵌入式系统的特点 ……………………………………………………………………… 3 1.1.4 嵌入式系统的应用领域 ………………………………………………………………… 4 1.1.5 嵌入式系统范例 ………………………………………………………………………… 7 1.2 嵌入式系统的硬件 ………………………………………………………………………………… 8 1.2.1 嵌入式处理器的分类 …………………………………………………………………… 9 1.2.2 嵌入式处理器的技术指标 ……………………………………………………………… 11 1.2.3 嵌入式存储器 …………………………………………………………………………… 14 1.2.4 嵌入式I/O 设备 ……………………………………………………………………… 16 1.2.5 嵌入式I/O 接口 ……………………………………………………………………… 16 1.3 ARM Cortex-M4 处理器 ……………………………………………………………………… 17 1.3.1 ARM 公司 ……………………………………………………………………………… 17 1.3.2 ARM 处理器 …………………………………………………………………………… 17 1.4 STM32微控制器 ………………………………………………………………………………… 19 1.4.1 从 ARM Cortex-M 内核到基于 ARM Cortex-M 的 MCU ………………………… 19 1.4.2 STM32微控制器产品线 ……………………………………………………………… 20 1.4.3 STM32微控制器命名规则 …………………………………………………………… 22 1.5 嵌入式系统的软件 ……………………………………………………………………………… 23 1.5.1 无操作系统的嵌入式软件 ……………………………………………………………… 24 1.5.2 带操作系统的嵌入式软件 ……………………………………………………………… 24 1.5.3 典型嵌入式操作系统 …………………………………………………………………… 24 1.5.4 软件结构选择建议 ……………………………………………………………………… 25 本章小结 ………………………………………………………………………………………………… 26 思考拓展 ………………………………………………………………………………………………… 26 10 第2章 STM32F407与实验平台 ………………………………………………………………………… 27 2.1 STM32F407微控制器…………………………………………………………………………… 27 2.1.1 STM32F407/STM32F417系列 ……………………………………………………… 27 2.1.2 STM32F407功能特性 ………………………………………………………………… 28 2.1.3 STM32F407内部结构 ………………………………………………………………… 29 2.1.4 STM32F407存储器映射 ……………………………………………………………… 31 2.1.5 STM32F407时钟系统 ………………………………………………………………… 32 2.1.6 STM32F407引脚 ……………………………………………………………………… 35 2.2 开发板总体概况 ………………………………………………………………………………… 36 2.2.1 开发板设计背景 ………………………………………………………………………… 36 2.2.2 开发板总体介绍 ………………………………………………………………………… 37 2.3 电源电路 ………………………………………………………………………………………… 38 2.3.1 电源电路原理图 ………………………………………………………………………… 38 2.3.2 电源电路工作原理 ……………………………………………………………………… 38 2.4 核心板电路 ……………………………………………………………………………………… 39 2.4.1 芯片电源电路 …………………………………………………………………………… 39 2.4.2 CPU 滤波电路 ………………………………………………………………………… 39 2.4.3 外接晶振电路 …………………………………………………………………………… 39 2.4.4 备用电源电路 …………………………………………………………………………… 39 2.4.5 复位电路 ………………………………………………………………………………… 41 2.4.6 启动设置电路 …………………………………………………………………………… 41 2.5 I/O 模块电路 …………………………………………………………………………………… 41 2.5.1 LED 模块 ……………………………………………………………………………… 42 2.5.2 按键模块 ………………………………………………………………………………… 42 2.5.3 显示模块 ………………………………………………………………………………… 42 2.5.4 蜂鸣器模块 ……………………………………………………………………………… 42 2.6 扩展模块电路 …………………………………………………………………………………… 44 2.6.1 温湿度传感器 …………………………………………………………………………… 44 2.6.2 光照传感器 ……………………………………………………………………………… 44 2.6.3 A/D 采样模块 ………………………………………………………………………… 44 2.6.4 EEPROM ……………………………………………………………………………… 45 2.6.5 Flash存储器 …………………………………………………………………………… 45 2.6.6 波形发生器 ……………………………………………………………………………… 45 2.6.7 蓝牙模块 ………………………………………………………………………………… 46 2.6.8 I/O 引脚外接模块 ……………………………………………………………………… 47 2.7 CMSIS-DAP调试器 …………………………………………………………………………… 47 本章小结 ………………………………………………………………………………………………… 48 思考拓展 ………………………………………………………………………………………………… 48 第3章 软件环境配置与使用入门 ………………………………………………………………………… 49 3.1 STM32开发方式 ………………………………………………………………………………… 49 11 3.1.1 STM32Snippets库……………………………………………………………………… 49 3.1.2 标准外设库 ……………………………………………………………………………… 50 3.1.3 STM32CubeMX HAL 库 ……………………………………………………………… 50 3.1.4 STM32CubeMXLL 库 ………………………………………………………………… 51 3.1.5 开发方式比较与选择 …………………………………………………………………… 51 3.2 软件资源安装与配置 …………………………………………………………………………… 52 3.2.1 JRE 安装………………………………………………………………………………… 52 3.2.2 STM32CubeMX 安装 ………………………………………………………………… 52 3.2.3 HAL 固件包安装 ……………………………………………………………………… 54 3.2.4 MDK-ARM 安装 ……………………………………………………………………… 58 3.2.5 器件包安装 ……………………………………………………………………………… 59 3.2.6 MDK-ARM 注册 ……………………………………………………………………… 61 3.2.7 软件安装总结 …………………………………………………………………………… 62 3.3 基于 STM32CubeMX 的 HAL 开发方式 ……………………………………………………… 62 3.3.1 STM32CubeMX 生成初始化代码 …………………………………………………… 62 3.3.2 MDK-ARM 集成开发 ………………………………………………………………… 67 3.4 CMSIS-DAP调试器使用 ……………………………………………………………………… 74 3.4.1 调试器连接与驱动安装 ………………………………………………………………… 74 3.4.2 调试选项设置与程序下载 ……………………………………………………………… 75 3.5 开发经验小结---编译器优化与volatile关键字……………………………………………… 77 3.5.1 编译器优化 ……………………………………………………………………………… 77 3.5.2 volatile关键字 ………………………………………………………………………… 77 本章小结 ………………………………………………………………………………………………… 77 思考拓展 ………………………………………………………………………………………………… 78 第二篇 基 本 外 设 第4章 通用输入输出端口 ………………………………………………………………………………… 80 4.1 GPIO 概述及引脚命名 ………………………………………………………………………… 80 4.2 GPIO 内部结构 ………………………………………………………………………………… 80 4.2.1 输入驱动器 ……………………………………………………………………………… 80 4.2.2 输出驱动器 ……………………………………………………………………………… 81 4.3 GPIO 工作模式 ………………………………………………………………………………… 82 4.3.1 输入浮空 ………………………………………………………………………………… 82 4.3.2 输入上拉 ………………………………………………………………………………… 82 4.3.3 输入下拉 ………………………………………………………………………………… 82 4.3.4 模拟输入 ………………………………………………………………………………… 82 4.3.5 开漏输出 ………………………………………………………………………………… 84 4.3.6 开漏复用输出 …………………………………………………………………………… 85 4.3.7 推挽式输出 ……………………………………………………………………………… 86 12 4.3.8 推挽式复用输出 ………………………………………………………………………… 86 4.3.9 工作模式选择 …………………………………………………………………………… 86 4.4 GPIO 输出速度 ………………………………………………………………………………… 87 4.5 I/O 引脚复用及映射 …………………………………………………………………………… 88 4.6 GPIO 控制寄存器 ……………………………………………………………………………… 89 4.7 GPIO 控制寄存器配置实例 …………………………………………………………………… 94 4.8 寄存器版 LED 灯闪烁工程 ……………………………………………………………………… 96 4.8.1 创建寄存器版工程模板 ………………………………………………………………… 96 4.8.2 LED 灯闪烁程序设计 ………………………………………………………………… 97 4.9 开发经验小结---MDK 中的 C 语言数据类型 ……………………………………………… 98 本章小结 ………………………………………………………………………………………………… 99 思考拓展 ………………………………………………………………………………………………… 99 第5章 LED流水灯与SysTick定时器 ………………………………………………………………… 100 5.1 GPIO 输出库函数 ……………………………………………………………………………… 100 5.1.1 GPIO 外设时钟使能 ………………………………………………………………… 100 5.1.2 函数 HAL_GPIO_Init()……………………………………………………………… 100 5.1.3 函数 HAL_GPIO_DeInit() ………………………………………………………… 102 5.1.4 函数 HAL_GPIO_WritePin() ……………………………………………………… 103 5.1.5 函数 HAL_GPIO_TogglePin()……………………………………………………… 103 5.1.6 输出寄存器访问 ……………………………………………………………………… 103 5.2 LED 流水灯控制 ……………………………………………………………………………… 104 5.3 SysTick定时器 ………………………………………………………………………………… 106 5.3.1 SysTick定时器概述 ………………………………………………………………… 106 5.3.2 SysTick定时器寄存器 ……………………………………………………………… 106 5.3.3 延时函数 HAL_Delay()……………………………………………………………… 107 5.3.4 HAL_Delay()延时实例 ……………………………………………………………… 110 5.3.5 微秒级延时的实现 …………………………………………………………………… 110 5.3.6 综合延时程序实例 …………………………………………………………………… 111 5.4 开发经验小结---C 语言中的位运算 ………………………………………………………… 112 5.4.1 位运算符和位运算 …………………………………………………………………… 112 5.4.2 嵌入式系统位运算实例 ……………………………………………………………… 114 本章小结 ……………………………………………………………………………………………… 114 思考拓展 ……………………………………………………………………………………………… 115 第6章 按键输入与蜂鸣器 ……………………………………………………………………………… 116 6.1 GPIO 输入库函数 ……………………………………………………………………………… 116 6.1.1 函数 HAL_GPIO_ReadPin()………………………………………………………… 116 6.1.2 输入数据寄存器访问 ………………………………………………………………… 116 6.1.3 函数 HAL_GPIO_LockPin()………………………………………………………… 117 13 6.2 独立按键控制蜂鸣器 …………………………………………………………………………… 117 6.2.1 电路原理 ……………………………………………………………………………… 117 6.2.2 按键消抖 ……………………………………………………………………………… 117 6.2.3 项目实施 ……………………………………………………………………………… 118 6.3 矩阵键盘扫描 …………………………………………………………………………………… 121 6.3.1 矩阵键盘电路 ………………………………………………………………………… 121 6.3.2 矩阵键盘扫描原理 …………………………………………………………………… 121 6.3.3 矩阵键盘实例 ………………………………………………………………………… 121 6.4 开发经验小结---复合数据类型 ……………………………………………………………… 123 6.4.1 结构体数据类型 ……………………………………………………………………… 123 6.4.2 枚举数据类型 ………………………………………………………………………… 126 本章小结 ……………………………………………………………………………………………… 127 思考拓展 ……………………………………………………………………………………………… 127 第7章 FSMC总线与双显示终端 ……………………………………………………………………… 128 7.1 FSMC 总线 ……………………………………………………………………………………… 128 7.2 硬件系统设计 …………………………………………………………………………………… 129 7.2.1 硬件结构框图 ………………………………………………………………………… 129 7.2.2 FSMC 与 TFTLCD 连接 …………………………………………………………… 130 7.2.3 FSMC 与数码管连接 ………………………………………………………………… 132 7.3 数码管接口技术 ………………………………………………………………………………… 133 7.3.1 数码管工作原理 ……………………………………………………………………… 133 7.3.2 数码管编码方式 ……………………………………………………………………… 133 7.3.3 数码管显示方式 ……………………………………………………………………… 134 7.4 TFTLCD 驱动 ………………………………………………………………………………… 134 7.4.1 ILI9341颜色体系……………………………………………………………………… 135 7.4.2 ILI9341常用命令……………………………………………………………………… 135 7.5 项目实例 ………………………………………………………………………………………… 138 7.5.1 FSMC 读写时序 ……………………………………………………………………… 138 7.5.2 FSMC 初始化 ………………………………………………………………………… 138 7.5.3 数码管动态显示学号 ………………………………………………………………… 140 7.5.4 数码管动态显示时间 ………………………………………………………………… 144 7.5.5 LCD 驱动程序 ………………………………………………………………………… 145 7.5.6 LCD 英文显示 ………………………………………………………………………… 150 7.5.7 LCD 中文信息显示 …………………………………………………………………… 152 7.6 开发经验小结---C 语言指针及其类型转换 ………………………………………………… 154 7.6.1 指针基本概念 ………………………………………………………………………… 154 7.6.2 指针类型转换 ………………………………………………………………………… 156 本章小结 ……………………………………………………………………………………………… 157 思考拓展 ……………………………………………………………………………………………… 158 14 第8章 中断系统与基本应用 …………………………………………………………………………… 159 8.1 中断的基本概念 ………………………………………………………………………………… 159 8.1.1 中断的定义 …………………………………………………………………………… 159 8.1.2 中断的优点与应用 …………………………………………………………………… 159 8.1.3 中断源与中断屏蔽 …………………………………………………………………… 160 8.1.4 中断处理过程 ………………………………………………………………………… 161 8.1.5 中断优先级与中断嵌套 ……………………………………………………………… 161 8.2 STM32F407中断系统 ………………………………………………………………………… 162 8.2.1 嵌套向量中断控制器 ………………………………………………………………… 162 8.2.2 STM32F407中断优先级……………………………………………………………… 162 8.2.3 STM32F407中断向量表……………………………………………………………… 163 8.2.4 STM32F407中断服务函数…………………………………………………………… 166 8.3 STM32F407外部中断/事件控制器 EXTI…………………………………………………… 167 8.3.1 EXTI内部结构 ……………………………………………………………………… 167 8.3.2 EXTI工作原理 ……………………………………………………………………… 168 8.3.3 EXTI主要特性 ……………………………………………………………………… 169 8.4 STM32F407外部中断 HAL 库函数 ………………………………………………………… 169 8.4.1 STM32F407的 NVIC 相关库函数…………………………………………………… 169 8.4.2 STM32F407的 EXTI相关库函数 …………………………………………………… 170 8.5 EXTI项目实例 ………………………………………………………………………………… 172 8.5.1 项目分析 ……………………………………………………………………………… 172 8.5.2 项目实施 ……………………………………………………………………………… 172 8.5.3 ISR 框架总结 ………………………………………………………………………… 176 8.6 开发经验小结---前/后台嵌入式软件架构 ………………………………………………… 177 本章小结 ……………………………………………………………………………………………… 177 思考拓展 ……………………………………………………………………………………………… 178 第9章 基本定时器 ……………………………………………………………………………………… 179 9.1 STM32F407定时器概述 ……………………………………………………………………… 179 9.2 基本定时器 ……………………………………………………………………………………… 180 9.2.1 基本定时器简介 ……………………………………………………………………… 180 9.2.2 基本定时器的主要特性 ……………………………………………………………… 180 9.2.3 基本定时器的功能 …………………………………………………………………… 180 9.2.4 基本定时器寄存器 …………………………………………………………………… 182 9.3 基本定时器的 HAL 驱动 ……………………………………………………………………… 183 9.3.1 基本定时器主要 HAL 驱动函数 …………………………………………………… 183 9.3.2 定时器通用操作宏函数 ……………………………………………………………… 185 9.3.3 定时器中断处理函数 ………………………………………………………………… 186 9.4 项目实例 ………………………………………………………………………………………… 188 15 9.4.1 数字电子钟 …………………………………………………………………………… 188 9.4.2 定时器刷新数码管 …………………………………………………………………… 193 9.4.3 定时器矩阵键盘扫描 ………………………………………………………………… 195 本章小结 ……………………………………………………………………………………………… 199 思考拓展 ……………………………………………………………………………………………… 200 第10章 通用定时器 ……………………………………………………………………………………… 201 10.1 通用定时器功能概述 ………………………………………………………………………… 201 10.1.1 通用定时器主要特性 ……………………………………………………………… 201 10.1.2 通用定时器功能描述 ……………………………………………………………… 202 10.2 通用定时器工作模式与 HAL 驱动 ………………………………………………………… 205 10.2.1 PWM 输出模式 …………………………………………………………………… 205 10.2.2 输出比较模式 ……………………………………………………………………… 207 10.2.3 输入捕获模式 ……………………………………………………………………… 208 10.2.4 PWM 输入模式 …………………………………………………………………… 210 10.3 通用定时器寄存器 …………………………………………………………………………… 210 10.4 通用定时器中断事件和回调函数 …………………………………………………………… 211 10.5 项目实例 ……………………………………………………………………………………… 213 10.5.1 PWM 呼吸灯 ……………………………………………………………………… 213 10.5.2 输出比较模式输出方波信号 ……………………………………………………… 217 10.5.3 输入捕获模式测量脉冲频率 ……………………………………………………… 220 10.5.4 PWM 波频率和占空比测量 ……………………………………………………… 224 本章小结 ……………………………………………………………………………………………… 230 思考拓展 ……………………………………………………………………………………………… 230 第三篇 扩 展 外 设 第11章 串行通信接口USART ………………………………………………………………………… 232 11.1 数据通信基本概念 …………………………………………………………………………… 232 11.1.1 并行通信与串行通信 ……………………………………………………………… 232 11.1.2 异步通信与同步通信 ……………………………………………………………… 232 11.1.3 串行通信的制式 …………………………………………………………………… 233 11.1.4 串行通信的校验 …………………………………………………………………… 234 11.1.5 串行通信的波特率 ………………………………………………………………… 234 11.2 USART 工作原理 …………………………………………………………………………… 234 11.2.1 USART 介绍 ……………………………………………………………………… 234 11.2.2 USART 功能特性 ………………………………………………………………… 235 11.2.3 UART 通信协议 ………………………………………………………………… 236 11.2.4 USART 中断 ……………………………………………………………………… 238 16 11.2.5 USART 相关寄存器 ……………………………………………………………… 239 11.3 UART 的 HAL 驱动………………………………………………………………………… 239 11.3.1 UART 常用功能函数 …………………………………………………………… 239 11.3.2 UART 常用的宏函数 …………………………………………………………… 242 11.3.3 UART 中断事件与回调函数 …………………………………………………… 243 11.4 串口通信项目实例 …………………………………………………………………………… 244 11.4.1 项目分析 …………………………………………………………………………… 244 11.4.2 微控制器端程序设计 ……………………………………………………………… 244 11.4.3 上位机程序设计 …………………………………………………………………… 249 11.4.4 串口通信调试 ……………………………………………………………………… 250 11.5 开发经验小结---printf()重定向函数 …………………………………………………… 252 11.5.1 重写fputc()函数 ………………………………………………………………… 252 11.5.2 选择使用 MicroLIB ……………………………………………………………… 252 11.5.3 printf()串口打印信息 …………………………………………………………… 252 本章小结 ……………………………………………………………………………………………… 253 思考拓展 ……………………………………………………………………………………………… 253 第12章 SPI与字库存储 ………………………………………………………………………………… 254 12.1 SPI通信原理 ………………………………………………………………………………… 254 12.1.1 SPI ………………………………………………………………………………… 254 12.1.2 SPI互连 …………………………………………………………………………… 255 12.2 STM32F407的 SPI工作原理 ……………………………………………………………… 256 12.2.1 SPI主要特征 ……………………………………………………………………… 256 12.2.2 SPI内部结构 ……………………………………………………………………… 257 12.2.3 时钟信号的相位和极性 …………………………………………………………… 258 12.2.4 数据帧格式 ………………………………………………………………………… 259 12.3 Flash存储芯片 W25Q128 ………………………………………………………………… 259 12.3.1 硬件接口和连接 …………………………………………………………………… 259 12.3.2 存储空间划分 ……………………………………………………………………… 260 12.3.3 数据读写原则 ……………………………………………………………………… 260 12.3.4 存储器操作指令 …………………………………………………………………… 260 12.4 SPI的 HAL 库驱动 ………………………………………………………………………… 261 12.4.1 SPI寄存器操作的宏函数 ………………………………………………………… 261 12.4.2 SPI初始化和阻塞式数据传输 …………………………………………………… 262 12.4.3 中断和 DMA 方式数据传输 ……………………………………………………… 263 12.5 SPIFlash读写测试 ………………………………………………………………………… 264 12.5.1 项目分析 …………………………………………………………………………… 264 12.5.2 项目实施 …………………………………………………………………………… 264 12.6 中文字库存储 ………………………………………………………………………………… 271 12.6.1 需求分析 …………………………………………………………………………… 271 17 12.6.2 字库生成与合并 …………………………………………………………………… 271 12.6.3 字库存储 …………………………………………………………………………… 273 12.6.4 LCD 中文驱动程序 ……………………………………………………………… 274 12.7 基于 SPI闪存的中文显示 …………………………………………………………………… 276 12.8 开发经验小结---条件编译 ………………………………………………………………… 276 12.8.1 命令形式 …………………………………………………………………………… 277 12.8.2 应用示例 …………………………………………………………………………… 277 本章小结 ……………………………………………………………………………………………… 277 思考拓展 ……………………………………………………………………………………………… 278 第13章 I2C接口与EEPROM ………………………………………………………………………… 279 13.1 I2C 通信原理 ………………………………………………………………………………… 279 13.1.1 I2C 串行总线概述 ………………………………………………………………… 279 13.1.2 I2C 总线的数据传送 ……………………………………………………………… 280 13.2 STM32F407的I2C 接口 …………………………………………………………………… 283 13.2.1 STM32F407的I2C 主要特性 …………………………………………………… 283 13.2.2 STM32F407的I2C 内部结构 …………………………………………………… 284 13.2.3 STM32F407的I2C 工作模式 …………………………………………………… 285 13.3 I2C 接口的 HAL 库驱动 …………………………………………………………………… 285 13.3.1 I2C 接口的初始化 ………………………………………………………………… 285 13.3.2 阻塞式数据传输 …………………………………………………………………… 285 13.3.3 中断方式数据传输 ………………………………………………………………… 287 13.3.4 DMA 方式数据传输 ……………………………………………………………… 288 13.4 EEPROM 存储芯片24C02 ………………………………………………………………… 288 13.4.1 芯片概述与硬件连接 ……………………………………………………………… 288 13.4.2 接口与通信协议 …………………………………………………………………… 289 13.5 EEPROM 存储开机密码项目 ……………………………………………………………… 291 13.5.1 项目分析 …………………………………………………………………………… 291 13.5.2 项目实施 …………………………………………………………………………… 291 本章小结 ……………………………………………………………………………………………… 295 思考拓展 ……………………………………………………………………………………………… 296 第14章 模/数转换与光照传感器 ……………………………………………………………………… 297 14.1 ADC 概述 …………………………………………………………………………………… 297 14.1.1 ADC 基本原理 …………………………………………………………………… 297 14.1.2 ADC 性能参数 …………………………………………………………………… 298 14.1.3 ADC 主要类型 …………………………………………………………………… 299 14.2 STM32F407的 ADC 工作原理 …………………………………………………………… 300 14.2.1 主要特征 …………………………………………………………………………… 300 14.2.2 内部结构 …………………………………………………………………………… 300 18 14.2.3 通道及分组 ………………………………………………………………………… 301 14.2.4 时序图 ……………………………………………………………………………… 303 14.2.5 数据对齐 …………………………………………………………………………… 303 14.2.6 校准 ………………………………………………………………………………… 303 14.2.7 转换时间 …………………………………………………………………………… 304 14.2.8 转换模式 …………………………………………………………………………… 304 14.2.9 外部触发转换和触发极性 ………………………………………………………… 305 14.2.10 中断和 DMA 请求 ……………………………………………………………… 307 14.2.11 多重 ADC 模式…………………………………………………………………… 307 14.3 ADC 的 HAL 库驱动 ……………………………………………………………………… 307 14.3.1 规则通道驱动 ……………………………………………………………………… 307 14.3.2 注入通道驱动 ……………………………………………………………………… 310 14.3.3 多重 ADC 驱动 …………………………………………………………………… 310 14.4 项目实例 ……………………………………………………………………………………… 310 14.4.1 多通道轮询方式模拟信号采集 …………………………………………………… 310 14.4.2 光照传感器模拟与数字同步控制 ………………………………………………… 315 本章小结 ……………………………………………………………………………………………… 317 思考拓展 ……………………………………………………………………………………………… 318 第15章 直接存储器访问 ………………………………………………………………………………… 319 15.1 DMA 的基本概念 …………………………………………………………………………… 319 15.1.1 DMA 的由来 ……………………………………………………………………… 319 15.1.2 DMA 的定义 ……………………………………………………………………… 319 15.1.3 DMA 的优点 ……………………………………………………………………… 320 15.2 STM32F407的 DMA 工作原理 …………………………………………………………… 320 15.2.1 DMA 简介 ………………………………………………………………………… 320 15.2.2 DMA 通道选择 …………………………………………………………………… 320 15.2.3 DMA 主要特性 …………………………………………………………………… 322 15.2.4 DMA 传输属性 …………………………………………………………………… 323 15.3 DMA 的 HAL 库驱动 ……………………………………………………………………… 324 15.3.1 DMA 的 HAL 函数概述 ………………………………………………………… 324 15.3.2 DMA 传输初始化配置 …………………………………………………………… 325 15.3.3 启动 DMA 数据传输 ……………………………………………………………… 326 15.3.4 DMA 中断 ………………………………………………………………………… 327 15.4 项目实例 ……………………………………………………………………………………… 328 15.4.1 USART 接口 DMA 传输 ………………………………………………………… 328 15.4.2 定时器触发 DMA 传输多通道模拟量采集 ……………………………………… 335 15.4.3 三重 ADC 同步转换 DMA 传输 ………………………………………………… 339 15.5 开发经验小结---轮询、中断、DMA ……………………………………………………… 343 15.5.1 轮询 ………………………………………………………………………………… 343 19 15.5.2 中断 ………………………………………………………………………………… 343 15.5.3 DMA ……………………………………………………………………………… 343 本章小结 ……………………………………………………………………………………………… 344 思考拓展 ……………………………………………………………………………………………… 344 第16章 数/模转换器 …………………………………………………………………………………… 345 16.1 DAC 概述 …………………………………………………………………………………… 345 16.1.1 DAC 基本原理 …………………………………………………………………… 345 16.1.2 DAC 性能参数 …………………………………………………………………… 346 16.2 STM32F407的 DAC 工作原理 …………………………………………………………… 347 16.2.1 DAC 结构与特性 ………………………………………………………………… 347 16.2.2 DAC 功能说明 …………………………………………………………………… 348 16.3 DAC 的 HAL 库驱动 ……………………………………………………………………… 350 16.3.1 DAC 驱动宏函数 ………………………………………………………………… 350 16.3.2 DAC 驱动功能函数 ……………………………………………………………… 351 16.4 项目实例 ……………………………………………………………………………………… 354 16.4.1 软件触发 D/A 转换 ……………………………………………………………… 354 16.4.2 三角波输出 ………………………………………………………………………… 357 16.4.3 使用 DMA 输出正弦波信号 ……………………………………………………… 360 本章小结 ……………………………………………………………………………………………… 364 思考拓展 ……………………………………………………………………………………………… 364 第17章 位带操作与温湿度传感器 ……………………………………………………………………… 365 17.1 STM32位带操作 …………………………………………………………………………… 365 17.1.1 位带介绍 …………………………………………………………………………… 365 17.1.2 位带区与位带别名区地址转换 …………………………………………………… 365 17.1.3 位带操作宏定义 …………………………………………………………………… 367 17.2 温湿度传感器 DHT11 ……………………………………………………………………… 368 17.2.1 DHT11功能说明 ………………………………………………………………… 368 17.2.2 DHT11单总线通信协议 ………………………………………………………… 368 17.3 温湿度实时监测 ……………………………………………………………………………… 372 17.3.1 项目分析 …………………………………………………………………………… 372 17.3.2 项目实施 …………………………………………………………………………… 372 本章小结 ……………………………………………………………………………………………… 377 思考拓展 ……………………………………………………………………………………………… 377 第18章 RTC与蓝牙通信 ……………………………………………………………………………… 378 18.1 RTC 概述 …………………………………………………………………………………… 378 18.1.1 RTC 功能 ………………………………………………………………………… 378 18.1.2 RTC 工作原理 …………………………………………………………………… 378 20 18.1.3 RTC 的中断和复用引脚 ………………………………………………………… 381 18.2 RTC 的 HAL 库驱动………………………………………………………………………… 382 18.2.1 RTC 的 HAL 基础驱动程序……………………………………………………… 382 18.2.2 周期唤醒相关 HAL 函数 ………………………………………………………… 385 18.2.3 闹钟相关 HAL 函数 ……………………………………………………………… 386 18.3 备份寄存器 …………………………………………………………………………………… 387 18.4 RTC 日历和闹钟项目 ……………………………………………………………………… 387 18.4.1 项目分析 …………………………………………………………………………… 387 18.4.2 项目实施 …………………………………………………………………………… 388 18.5 蓝牙模块通信 ………………………………………………………………………………… 397 18.5.1 蓝牙通信概述 ……………………………………………………………………… 397 18.5.2 蓝牙透明传输原理 ………………………………………………………………… 397 18.6 无线时间同步电子万年历 …………………………………………………………………… 398 18.6.1 项目分析 …………………………………………………………………………… 398 18.6.2 项目实施 …………………………………………………………………………… 399 本章小结 ……………………………………………………………………………………………… 404 思考拓展 ……………………………………………………………………………………………… 405 附录A ASCII码表 ……………………………………………………………………………………… 406 附录B 运算符和结合性关系表 ………………………………………………………………………… 407 附录C STM32F407微控制器引脚定义表 ……………………………………………………………… 409 参考文献 …………………………………………………………………………………………………… 416
展开全部

ARM CORTEX-M4嵌入式系统原理及应用——基于STM32F407微控制器的HAL库开发 作者简介

黄克亚,苏州大学副教授、软件设计师、硕士生导师,主要从事智能控制、嵌入式系统开发等领域的教学和科研工作。长期讲授“电工电子技术”“单片机原理与控制技术”“微机原理及应用”“嵌入式系统开发与实践”“传感器应用技术”等课程。近年来主持省级课题2项,获授权发明专利2项,登记软件著作权4项,发表SCI/EI/中文核心论文12篇。指导学生获全国软件和信息技术专业人才大赛全国总决赛二等奖2项、全国大学生电子设计竞赛江苏省赛区二等奖2项、江苏省本专科优秀毕业设计(论文)三等奖1项。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服