本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | STM32单片机原理与项目实战 |
作者: | 刘龙,高照玲,田华著 |
定价: | 89.8 |
出版社: | 人民邮电出版社 |
出版日期: | 22-09-01 |
ISBN: | 9787115578518 |
印次: | |
版次: | |
装帧: | |
开本: |
内容简介 |
本书旨在以实践驱动学过“做中学”的方式让读者掌握相关知识点。全书内容分为10章,主要介绍了STM32系列处理器的基础知识、开发工具、基本系统、通用输入输出端口应用、系统节定时器、中断系统、定时器、串行通信、模数转换器,并展示了一个综合项目—温度控制系统。书了19个范例,这些范例可以帮助读者循序地掌握嵌入式系统开发的核心技术。 本书适合电子信息、通信、控制、计算机等相关专业的师生阅读,也适合作为嵌入式系统开发的入门教程,是一本既适合自学入门,又适合教学参考的图书。 |
目录 |
第 1章 STM32单片机的基础知识 pan> 1.1 单片机的由来与发展历史 2 1.1.1 嵌入式系统 2 1.1.2 嵌入式计算机系统 4 1.1.3 单片机的发展历史 5 1.1.4 单片机的发展趋势 6 1.2 单片机的应用 9 1.2.1 单片机的应用结构 9 1.2.2 单片机的应用领域 10 1.3 其他单片机 1pan> 1.4 ARM简介 12 1.4.1 ARM公司简介 12 1.4.2 ARM的体系结构 12 1.4.3 ARM的发展 13 1.5 Cortex-M3内核与STM32简介 14 1.5.1 什么是Cortex-M3 内核 15 1.5.2 什么是STM32 18 1.5.3 STM32单片机的时钟 2pan> 1.6 STM32单片机的C语言编程 知识点 23 1.6.1 STM32编程的特点 23 1.6.2 STM32编程中的数据 类型 24 1.6.3 STM32编程常用的C语言 知识点 26 1.7 什么是CMSIS固件库 32 1.7.1 CMSIS固件库简介 32 1.7.2 CMSIS固件库设计及 规范 33 1.8 巩固 34 第 2章 STM32单片机的开发工具 36 2.1 STM32的开发工具一览 37 2.1.1 硬件开发工具 37 2.1.2 软件开台 38 2.2 硬件开发工具JLink 38 2.2.1 JLink的驱动安装及调试 接口 38 2.2.2 硬件调试接口JTAG/SWD 的定义 39 2.3 软件开发环境MDK的使用 方法 42 2.3.1 MDK的安装 43 2.3.2 MDK工程模块的创建 43 2.4 巩固 65 第3章 STM32单片机的基本系统 67 3.1 单片机的基本系统组成元素 68 3.2 项目实战:电源电路的设计 69 3.2.1 概述 69 3.2.2 范例1:电源电路的 设计 70 3.2.3 电源电路设计注意事项 73 3.3 项目实战:复位电路的设计 73 3.3.1 概述 73 3.3.2 范例2:复位电路的 设计 74 3.3.3 复位电路设计注意事项 75 3.4 项目实战:时钟电路的设计 76 3.4.1 概述 76 3.4.2 范例3:时钟电路的 设计 76 3.4.3 时钟电路设计注意事项 76 3.5 项目实战:调试电路的设计 77 3.5.1 概述 77 3.5.2 范例4:调试电路的 设计 77 3.5.3 调试电路设计注意 事项 78 3.6 项目实战:启动电路的设计 78 3.6.1 概述 78 3.6.2 启动电路分析及工作 原理 79 3.7 巩固 80 第4章 通用输入输出端口应用 8pan> 4.1 GPIO工作原理 82 4.1.1 STM32F103C8T6单片机的 引脚 82 4.1.2 引脚内部构造 85 4.1.3 GPIO的8种工作模式 86 4.2 GPIO寄能详解 90 4.2.1 端口配置低寄存器(GPIOX_CRL) 90 4.2.2 端口配置高寄存器(GPIOX_CRH) 9pan> 4.2.3 端口输入数据寄存器(GPIOX_IDR) 92 4.2.4 端口输出数据寄存器(GPIOX_ODR) 92 4.2.5 端口位设置/清除寄存器 (GPIOX_BSRR) 93 4.2.6 端口位清除寄存器 (GPIOX_BRR) 94 4.3 利用库函数使用GPIO的方法 94 4.3.1 初始化端口 95 4.3.2 初始化时钟 97 4.3.3 GPIO引脚控制 103 4.4 项目实战:开关量驱动外设 104 4.4.1 GPIO硬件接口电路设计 要点 104 4.4.2 范例5:GPIO驱动发光 二极管 105 4.4.3 范例6:GPIO驱动 蜂鸣器 109 4.4.4 范例7:GPIO驱动 数码管 112 4.5 巩固 117 第5章 系统节定时器 119 5.1 系统节定时器概述 pan> 5.2 系统节定时器的相关寄存器 5.2.1 控制和状态寄存器 CTRL 12pan> 5.2.2 重装载值寄存器 LOAD 122 5.2.3 当前值寄存器VAL 122 5.3 利用库函数设置GPIO的方法 122 5.3.1 系统节定时器结构体 122 5.3.2 系统节定时器库函数 123 5.3.3 范例8:利用系统节 定时器延时 123 5.4 项目实战:人机界面之液晶 显示 124 5.4.1 液晶显示器简介 125 5.4.2 液晶模块引脚分布 125 5.4.3 液晶模块的控制指令 126 5.4.4 液晶显示器的工作时序 128 5.4.5 液晶显示器的字符集 129 5.4.6 范例9:利用液晶显示器 输出信息 130 5.5 巩固 136 第6章 STM32单片机的中断系38 6.1 中断相关的概念 139 6.1.1 什么是中断 139 6.1.2 中断处理过程 140 6.1.3 什么是中断源 140 6.1.4 什么是中断信号 14pan> 6.1.5 中断屏蔽的概念 14pan> 6.1.6 中断优先级及中断嵌套 142 6.1.7 Cortex-M3内核的嵌套 向量中断控制器 144 6.1.8 STM32的中断控制 固件库 147 6.2 STM32的中断系48 6.2.1 什么是异常 148 6.2.2 STM32的中断通道 150 6.2.3 固件库中中断向量区的 定义 154 6.2.4 利用库函数控制NVIC 方法 156 6.3 STM32单片机的EXTI 157 6.3.1 什么是外部中断/事件 控制器EXTI 157 6.3.2 EX能结构 158 6.3.3 中断/事件线的种类 160 6.3.4 STM32固件库中EXTI的 初始化结构体 16pan> 6.3.5 STM32固件库中EXTI的 相关函数 163 6.4 项目实战:人机交互之按键 164 6.4.1 按键分类 165 6.4.2 按键的接法 165 6.4.3 矩阵键盘扫描原理 167 6.4.4 按键的消抖处理 167 6.4.5 按键程序法 168 6.4.6 范例10:按键控制 彩灯 168 6.5 巩固 17pan> 第7章 STM32单片机的定时器 175 7.1 定时器的工作原理 176 7.1.1 定时器简介 176 7.1.2 通用定时器的时钟源 176 7.1.3 通用定时器的定时 时钟 177 7.1.4 定能 178 7.1.5 定时器定时时间 179 7.1.6 定时器的模式 179 7.2 通用定时器的相关寄能 详解 179 7.2.1 控制寄存器pan> (TIMx_CR1) 179 7.2.2 中断使能寄存器(TIMx_DIER) 18pan> 7.2.3 预分频寄存器 (TIMx_PSC) 182 7.2.4 器(TIMx_CNT) 182 7.2.5 自动重装载寄存器 (TIMx_ARR) 183 7.2.6 状态寄存器 (TIMx_SR) 183 7.3 固件库中定时器的相关内容 185 7.3.1 固件库中定时器的 结构体 185 7.3.2 固件库中定时器的 相关库函数 186 7.3.3 利用固件库设置通用定时器方法 187 7.3.4 范例11:利用通用定时器 7.4 PWM原理 19pan> 7.4.1 什么是PWM 19pan> 7.4.2 STM32单片机如何产生 PWM信号 192 7.4.3 STM32单片机PWM信号 输出控制 193 7.4.4 PWM信号的输出引脚 控制 193 7.5 PWM相关寄存能 详解 196 7.5.1 捕获/比较模式寄存器 (TIMx_CCMR1/2) 196 7.5.2 捕获/比较使能寄存器 (TIMx_CCER) 198 7.5.3 捕获/比较寄存器 (TIMx_CCR1~TIMx_CCR4) 199 7.6 固件库中PWM的相关内容 199 7.6.1 P能的相关 结构体 199 7.6.2 P能的相关库 函数 pan> 7.6.3 使用固件库设置PWM的 方法 2 7.6.4 范例12:三色彩灯 控制 3 7.7 巩固 5 第8章 STM32单片机的串行通信 7 8.1 串行通信的基本概念 8 8.1.1 数据通信方式 8 8.1.2 异步传输的字符 数据帧 21pan> 8.1.3 异步通信 213 8.1.4 波特率 213 8.2 RS-232线标准 214 8.3 STM32系统的RS-232C传输 接口 217 8.3.1 RS-232C的转换 218 8.3.2 典型的RS-232C接口 电路 219 8.4 不同单片机之间的串线 连接 2 8.4.1 微处理器间直接通信 2 8.4.2 利用RS-232通信 2 8.5 STM32的串行通信接口 2 8.5.1 STM32的UART特性 2 8.5.2 STM32的UART引脚 22pan> 8.5.3 STM32的UART结构 223 8.6 STM32串行端口的使用方法 225 8.6.1 STM32的UART时钟 控制 225 8.6.2 STM32的UART引脚 配置 225 8.6.3 STM32的串口波特率 226 8.6.4 STM32的UART寄存器 8.6.5 STM32的UART的 控制 233 8.6.6 STM32的UART的数据 读写 237 8.7 STM32的UART中断使用 239 8.7.1 STM32的UART的收发 中断控制 239 8.7.2 STM32的UART中断 使用方法 240 8.8 添加prin能 243 8.9 主从机通信 244 8.9.1 范例13:查询法 244 8.9.2 范例14:中断法 247 8.10 巩固 249 第9章 STM32单片机的模数转换器 25pan> 9.1 输入信号分类形式 252 9.1.1 模拟信号和数字信号 252 9.1.2 电压信号和电流信号 252 9.1.3 单次信号和连续信号 253 9.2 模数转换的原理 253 9.3 模数转换器的工作过程 253 9.4 模数转换器的相关概念 254 9.4.1 基准源 254 9.4.2 模数转换器的分类 254 9.4.3 模数转换器的主要技术 指标 255 9.5 STM32的模数转换器 256 9.5.1 STM32的模数转换器 特性 256 9.5.2 STM32的模数转换器 9.6 STM32的ADC相关寄能 详解 262 9.6.1 ADC控制寄存器pan> (ADC_CR1) 262 9.6.2 ADC控制寄存器2 (ADC_CR2) 265 9.6.3 ADC采样时间寄存器pan> (ADC_SMPR1) 267 9.6.4 ADC采样时间寄存器2 (ADC_SMPR2) 268 9.6.5 ADC注入数据寄存器x (ADC_JDRx) 268 9.6.6 ADC规则数据寄存器(ADC_DR) 269 9.6.7 ADC状态寄存器 (ADC_SR) 270 9.7 STM32的ADC转换模式 27pan> 9.7.1 单次转换模式 27pan> 9.7.2 连续转换模式 27pan> 9.8 固件库中的ADC结构体及 库函数 272 9.8.1 ADC初始化结构体 272 9.8.2 ADC相应库函数 274 9.9 ADC应用设计深入讨论 28pan> 9.9.1 工作电压的稳定性 282 9.9.2 参考电压的确定 282 9.9.3 采样时钟的选择 282 9.9.4 模拟噪声的 282 9.9.5 校准 283 9.9.6 ADC开关控制 283 9.10 数字电位器 284 9.10.1 范例15:电位器 原理图 284 9.10.2 范例16:读取模数转换器 通道电压—查询法 284 9.10.3 范例17:读取模数转换器 通道电压—中断法 287 9.11 巩固 29pan> 第 10章 综合项目之温度控制系统 293 10.1 单片机系统的程序结构 294 10.1.1 任务的划分 294 10.1.2 程序实时性 296 10.1.3 前后台程序结构的优点与 缺点 297 10.1.4 前后台程序的 方法 298 10.1.5 范例18:缓冲区(FIFO) 应用实例 302 10.2 利用状态机单片机系7 10.2.1 初步认识状态机 317 10.2.2 状态机描述方法 322 10.2.3 通过状态转移图生成 代码 325 10.2.4 范例19:状态机项目 328 10.3 温度传感器 349 10.4 巩固 352 |
1.本书以实践驱动学过“做中学”的方式让读者掌握相关知识点,从理论知识过渡到掌握实战技能; 2.以工程教育理念为指导,合理安排教学结构,采用典型情境任务开发的方式介绍相应知识点; 3.本书旨在服务于有自学需求和教学需求的读者,并通过强大的配套资源优化阅读体验: 为准备自学的读者提供讲解、案例资源、练参考答案等; 为有教学需求的读者提供课程标准、教学日历、课程导学、教案、PPT讲稿、教学案例等。 |
作者简介 |
刘龙,副教授,博士,任大连市人工智能协会副理事长,辽宁省本科教育示范专业负责人。06年起至今从事嵌入式系统方向教学工作10余年,对相关领域有一定了解。多年以来,发表的重要学术文章达余篇,主持并参与省部级项目5项,主持省级教改项目1项,获得省级教学成果奖3项。 高照玲,研究生学历,毕业于哈尔滨工程大学。06年参加教学工作,主要研究方向为导航制导与控制和嵌入式系统应用。 田华,研究生学历,毕业于贵州大学理学院。09年参加教学工作,主要研究方向为嵌入式控制系统的设计应用。 |