内容推荐 近年来,嵌入式系统开发技术和嵌入式产品的发展势头迅猛,其应用领域涉及通信、消费电子、汽车工业等各个方面。嵌入式系统的设计与开发是一项实践性很强的专业技术,要求从业者深刻理解理论知识,并将原理与实践紧密结合。 本书旨在以实践驱动学习,通过“做中学”的方式让读者掌握相关知识点。全书内容分为10章,主要介绍了STM32系列处理器的基础知识、开发工具、基本系统、通用输入输出端口应用、系统节拍定时器、中断系统、定时器、串行通信、模数转换器,并展示了一个综合项目—温度控制系统。书中提供了19个范例,这些范例可以帮助读者循序渐进地掌握嵌入式系统开发的核心技术。 本书适合电子信息、通信、控制、计算机等相关专业的师生阅读,也适合作为嵌入式系统开发的入门教程,是一本既适合自学入门,又适合教学参考的图书。 作者简介 刘龙,副教授,博士,任大连市人工智能协会副理事长,辽宁省一流本科教育示范专业负责人。2006年起至今从事嵌入式系统方向教学工作10余年,对相关领域有一定了解。多年以来,发表的重要学术文章达20余篇,主持并参与省部级项目5项,主持省级教改项目1项,获得省级教学成果奖3项。 高照玲,研究生学历,毕业于哈尔滨工程大学。2006年参加教学工作,主要研究方向为导航制导与控制和嵌入式系统应用。 田华,研究生学历,毕业于贵州大学理学院。2009年参加教学工作,主要研究方向为嵌入式控制系统的设计应用。 目录 第 1章 STM32单片机的基础知识\t1 1.1 单片机的由来与发展历史\t2 1.1.1 嵌入式系统\t2 1.1.2 嵌入式计算机系统\t4 1.1.3 单片机的发展历史\t5 1.1.4 单片机的发展趋势\t6 1.2 单片机的应用\t9 1.2.1 单片机的应用结构\t9 1.2.2 单片机的应用领域\t10 1.3 其他单片机\t11 1.4 ARM简介\t12 1.4.1 ARM公司简介\t12 1.4.2 ARM的体系结构\t12 1.4.3 ARM的发展\t13 1.5 Cortex-M3内核与STM32简介\t14 1.5.1 什么是Cortex-M3 内核\t15 1.5.2 什么是STM32\t18 1.5.3 STM32单片机的时钟\t21 1.6 STM32单片机的C语言编程 知识点\t23 1.6.1 STM32编程的特点\t23 1.6.2 STM32编程中的数据 类型\t24 1.6.3 STM32编程常用的C语言 知识点\t26 1.7 什么是CMSIS固件库\t32 1.7.1 CMSIS固件库简介\t32 1.7.2 CMSIS固件库设计及 规范\t33 1.8 习题与巩固\t34 第 2章 STM32单片机的开发工具\t36 2.1 STM32的开发工具一览\t37 2.1.1 硬件开发工具\t37 2.1.2 软件开发平台\t38 2.2 硬件开发工具JLink\t38 2.2.1 JLink的驱动安装及调试 接口\t38 2.2.2 硬件调试接口JTAG/SWD 的定义\t39 2.3 软件开发环境MDK的使用 方法\t42 2.3.1 MDK的安装\t43 2.3.2 MDK工程模块的创建\t43 2.4 习题与巩固\t65 第3章 STM32单片机的基本系统\t67 3.1 单片机的基本系统组成元素\t68 3.2 项目实战:电源电路的设计\t69 3.2.1 概述\t69 3.2.2 范例1:电源电路的 设计\t70 3.2.3 电源电路设计注意事项\t73 3.3 项目实战:复位电路的设计\t73 3.3.1 概述\t73 3.3.2 范例2:复位电路的 设计\t74 3.3.3 复位电路设计注意事项\t75 3.4 项目实战:时钟电路的设计\t76 3.4.1 概述\t76 3.4.2 范例3:时钟电路的 设计\t76 3.4.3 时钟电路设计注意事项\t76 3.5 项目实战:调试电路的设计\t77 3.5.1 概述\t77 3.5.2 范例4:调试电路的 设计\t77 3.5.3 调试电路设计注意 事项\t78 3.6 项目实战:启动电路的设计\t78 3.6.1 概述\t78 3.6.2 启动电路分析及工作 原理\t79 3.7 习题与巩固\t80 第4章 通用输入输出端口应用\t81 4.1 GPIO工作原理\t82 4.1.1 STM32F103C8T6单片机的 引脚\t82 4.1.2 引脚内部构造\t85 4.1.3 GPIO的8种工作模式\t86 4.2 GPIO寄存器功能详解\t90 4.2.1 端口配置低寄存器(GPIOX_CRL)\t90 4.2.2 端口配置高寄存器(GPIOX_CRH)\t91 4.2.3 端口输入数据寄存器(GPIOX_IDR)\t92 4.2.4 端口输出数据寄存器(GPIOX_ODR)\t92 4.2.5 端口位设置/清除寄存器 (GPIOX_BSRR)\t93 4.2.6 端口位清除寄存器 (GPIOX_BRR)\t94 4.3 利用库函数使用GPIO的方法\t94 4.3.1 初始化端口\t95 4.3.2 初始化时钟\t97 4.3.3 GPIO引脚控制\t103 4.4 项目实战:开关量驱动外设\t104 4.4.1 GPIO硬件接口电路设计 要点\t104 4.4.2 范例5:GPIO驱动发光 二极管\t105 4.4.3 范例6:GPIO驱动 蜂鸣器\t109 4.4.4 范例7:GPIO驱动 数码管\t112 4.5 习题与巩固\t117 第5章 系统节拍定时器\t119 5.1 系统节拍定时器概述\t120 5.2 系统节拍定时器的相关寄存器 功能详解\t121 5.2.1 控制和状态寄存器 CTRL\t121 5.2.2 重装载值寄存器 LOAD\t122 5.2.3 当前值寄存器VAL\t122 5.3 利用库函数设置GPIO的方法\t122 5.3.1 系统节拍定时器结构体\t122 5.3.2 系统节拍定时器库函数\t123 5.3.3 范例8:利用系统节拍 定时器精确延时\t123 5.4 项目实战:人机界面之液晶 显示\t124 5.4.1 液晶显示器简介\t125 5.4.2 液晶模块引脚分布\t125 5.4.3 液晶模块的控制指令\t126 5.4.4 液晶显示器的工作时序\t128 5.4.5 液晶显示器的字符集\t129 5.4.6 范例9:利用液晶显示器 输出信息\t130 5.5 习题与巩固\t136 第6章 STM32单片机的中断系统\t138 6.1 中断相关的概念\t139 6.1.1 什么是中断\t139 6.1.2 中断处理过程\t140 6.1.3 什么是中断源\t140 6.1.4 什么是中断信号\t141 6.1.5 中断屏蔽的概念\t141 6.1.6 中断优先级及中断嵌套\t142 6.1.7 Cortex-M3内核的嵌套 向量中断控制器\t144 6.1.8 STM32的中断控制 固件库\t147 6.2 STM32的中断系统\t148 6.2.1 什么是异常\t148 6.2.2 STM32的中断通道\t150 6.2.3 固件库中中断向量区的 定义\t154 6.2.4 利用库函数控制NVIC 方法\t156 6.3 STM32单片机的EXTI\t157 6.3.1 什么是外部中断/事件 控制器EXTI\t157 6.3.2 EXTI功能结构\t158 6.3.3 中断/事件线的种类\t160 6.3.4 STM32固件库中EXTI的 初始化结构体\t161 6.3.5 STM32固件库中EXTI的 相关函数\t163 6.4 项目实战:人机交互之按键\t164 6.4.1 按键分类\t165 6.4.2 按键的接法\t165 6.4.3 矩阵键盘扫描原理\t167 6.4.4 按键的消抖处理\t167 6.4.5 按键程序处理方法\t168 6.4.6 范例10:按键控制 彩灯\t168 6.5 习题与巩固\t171 第7章 STM32单片机的定时器\t175 7.1 定时器的工作原理\t176 7.1.1 定时器简介\t176 7.1.2 通用定时器的时钟源\t176 7.1.3 通用定时器的定时 时钟\t177 7.1.4 定时器功能\t178 7.1.5 定时器定时时间\t179 7.1.6 定时器的计数模式\t179 7.2 通用定时器的相关寄存器功能 详解\t179 7.2.1 控制寄存器1 (TIMx_CR1)\t179 7.2.2 中断使能寄存器(TIMx_DIER)\t181 7.2.3 预分频寄存器 (TIMx_PSC)\t182 7.2.4 计数器(TIMx_CNT)\t182 7.2.5 自动重装载寄存器 (TIMx_ARR)\t183 7.2.6 状态寄存器 (TIMx_SR)\t183 7.3 固件库中定时器的相关内容\t185 7.3.1 固件库中定时器的 结构体\t185 7.3.2 固件库中定时器的 相关库函数\t186 7.3.3 利用固件库设置通用定时器方法\t187 7.3.4 范例11:利用通用定时器 进行精确定时\t189 7.4 PWM原理\t191 7.4.1 什么是PWM\t191 7.4.2 STM32单片机如何产生 PWM信号\t192 7.4.3 STM32单片机PWM信号 输出控制\t193 7.4.4 PWM信号的输出引脚 控制\t193 7.5 PWM相关寄存器的功能 详解\t196 7.5.1 捕获/比较模式寄存器 (TIMx_CCMR1/2)\t196 7.5.2 捕获/比较使能寄存器 (TIMx_CCER)\t198 7.5.3 捕获/比较寄存器 (TIMx_CCR1~TIMx_CCR4)\t199 7.6 固件库中PWM的相关内容\t199 7.6.1 PWM功能的相关 结构体\t199 7.6.2 PWM功能的相关库 函数\t201 7.6.3 使用固件库设置PWM的 方法\t202 7.6.4 范例12:三色彩灯 控制\t203 7.7 习题与巩固\t205 第8章 STM32单片机的串行通信\t207 8.1 串行通信的基本概念\t208 8.1.1 数据通信方式\t208 8.1.2 异步传输的字符 数据帧\t211 8.1.3 异步通信\t213 8.1.4 波特率\t213 8.2 RS-232C总线标准\t214 8.3 STM32系统的RS-232C传输 接口\t217 8.3.1 RS-232C的电平转换\t218 8.3.2 典型的RS-232C接口 电路\t219 8.4 不同单片机之间的串行总线 连接\t220 8.4.1 微处理器间直接通信\t220 8.4.2 利用RS-232通信\t220 8.5 STM32的串行通信接口\t220 8.5.1 STM32的UART特性\t220 8.5.2 STM32的UART引脚\t221 8.5.3 STM32的UART结构\t223 8.6 STM32串行端口的使用方法\t225 8.6.1 STM32的UART时钟 控制\t225 8.6.2 STM32的UART引脚 配置\t225 8.6.3 STM32的串口波特率\t226 8.6.4 STM32的UART寄存器 功能详解\t227 8.6.5 STM32的UART的 控制\t233 8.6.6 STM32的UART的数据 读写\t237 8.7 STM32的UART中断使用\t239 8.7.1 STM32的UART的收发 中断控制\t239 8.7.2 STM32的UART中断 使用方法\t240 8.8 添加printf功能\t243 8.9 主从机通信\t244 8.9.1 范例13:查询法\t244 8.9.2 范例14:中断法\t247 8.10 习题与巩固\t249 第9章 STM32单片机的模数转换器\t251 9.1 输入信号分类形式\t252 9.1.1 模拟信号和数字信号\t252 9.1.2 电压信号和电流信号\t252 9.1.3 单次信号和连续信号\t253 9.2 模数转换的原理\t253 9.3 模数转换器的工作过程\t253 9.4 模数转换器的相关概念\t254 9.4.1 基准源\t254 9.4.2 模数转换器的分类\t254 9.4.3 模数转换器的主要技术 指标\t255 9.5 STM32的模数转换器\t256 9.5.1 STM32的模数转换器 特性\t256 9.5.2 STM32的模数转换器 功能剖析\t257 9.6 STM32的ADC相关寄存器功能 详解\t262 9.6.1 ADC控制寄存器1 (ADC_CR1)\t262 9.6.2 ADC控制寄存器2 (ADC_CR2)\t265 9.6.3 ADC采样时间寄存器1 (ADC_SMPR1)\t267 9.6.4 ADC采样时间寄存器2 (ADC_SMPR2)\t268 9.6.5 ADC注入数据寄存器x (ADC_JDRx)\t268 9.6.6 ADC规则数据寄存器(ADC_DR)\t269 9.6.7 ADC状态寄存器 (ADC_SR)\t270 9.7 STM32的ADC转换模式\t271 9.7.1 单次转换模式\t271 9.7.2 连续转换模式\t271 9.8 固件库中的ADC结构体及 库函数\t272 9.8.1 ADC初始化结构体\t272 9.8.2 ADC相应库函数\t274 9.9 ADC应用设计深入讨论\t281 9.9.1 工作电压的稳定性\t282 9.9.2 参考电压的确定\t282 9.9.3 采样时钟的选择\t282 9.9.4 模拟噪声的抑制\t282 9.9.5 校准\t283 9.9.6 ADC开关控制\t283 9.10 数字电位器\t284 9.10.1 范例15:电位器 原理图\t284 9.10.2 范例16:读取模数转换器 通道电压—查询法\t284 9.10.3 范例17:读取模数转换器 通道电压—中断法\t287 9.11 习题与巩固\t291 第 10章 综合项目之温度控制系统\t293 10.1 单片机系统的程序结构\t294 10.1.1 任务的划分\t294 10.1.2 程序实时性\t296 10.1.3 前后台程序结构的优点与 缺点\t297 10.1.4 改进前后台程序的 方法\t298 10.1.5 范例18:缓冲区(FIFO) 应用实例\t302 10.2 利用状态机改进单片机系统\t317 10.2.1 初步认识状态机\t317 10.2.2 状态机描述方法\t322 10.2.3 通过状态转移图生成 代码\t325 10.2.4 范例19:状态机项目\t328 10.3 温度传感器\t349 10.4 习题与巩固\t352
导语 1.本书以实践驱动学习,通过“做中学”的方式让读者掌握相关知识点,从理论知识过渡到掌握实战技能; 2.以工程教育理念为指导,合理安排教学结构,采用典型情境任务开发的方式介绍相应知识点; 3.本书旨在服务于有自学需求和教学需求的读者,并通过强大的配套资源优化阅读体验: 为准备自学的读者提供讲解视频、案例资源、练习题及参考答案等; 为有教学需求的读者提供课程标准、教学日历、课程导学、教案、PPT讲稿、教学案例等。 主题词 计算机//嵌入式//STM32//教材//智能硬件 |