科技
类型
可以朗读
语音朗读
233千字
字数
2022-09-01
发行日期
展开全部
主编推荐语
本书介绍了单片机技术的具体应用,并通过具体项目讲解单片机开发的基本流程和方法,以及单片机开发工具的使用方法。
内容简介
近年来,嵌入式系统开发技术和嵌入式产品的发展势头迅猛,其应用领域涉及通信、消费电子、汽车工业等各个方面。嵌入式系统的设计与开发是一项实践性很强的专业技术,要求从业者深刻理解理论知识,并将原理与实践紧密结合。
全书内容分为10章,主要介绍了STM32系列处理器的基础知识、开发工具、基本系统、通用输入输出端口应用、系统节拍定时器、中断系统、定时器、串行通信、模数转换器,并展示了一个综合项目—温度控制系统。书中提供了19个范例,这些范例可以帮助读者循序渐进地掌握嵌入式系统开发的核心技术。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第1章 STM32单片机的基础知识
- 1.1 单片机的由来与发展历史
- 1.1.1 嵌入式系统
- 1.1.2 嵌入式计算机系统
- 1.1.3 单片机的发展历史
- 1.1.4 单片机的发展趋势
- 1.2 单片机的应用
- 1.2.1 单片机的应用结构
- 1.2.2 单片机的应用领域
- 1.3 其他单片机
- 1.4 ARM简介
- 1.4.1 ARM公司简介
- 1.4.2 ARM的体系结构
- 1.4.3 ARM的发展
- 1.5 Cortex-M3内核与STM32简介
- 1.5.1 什么是Cortex-M3内核
- 1.5.2 什么是STM32
- 1.5.3 STM32单片机的时钟
- 1.6 STM32单片机的C语言编程知识点
- 1.6.1 STM32编程的特点
- 1.6.2 STM32编程中的数据类型
- 1.6.3 STM32编程常用的C语言知识点
- 1.7 什么是CMSIS固件库
- 1.7.1 CMSIS固件库简介
- 1.7.2 CMSIS固件库设计及规范
- 1.8 习题与巩固
- 第2章 STM32单片机的开发工具
- 2.1 STM32的开发工具一览
- 2.1.1 硬件开发工具
- 2.1.2 软件开发平台
- 2.2 硬件开发工具JLink
- 2.2.1 JLink的驱动安装及调试接口
- 2.2.2 硬件调试接口JTAG/SWD的定义
- 2.3 软件开发环境MDK的使用方法
- 2.3.1 MDK的安装
- 2.3.2 MDK工程模块的创建
- 2.4 习题与巩固
- 第3章 STM32单片机的基本系统
- 3.1 单片机的基本系统组成元素
- 3.2 项目实战:电源电路的设计
- 3.2.1 概述
- 3.2.2 范例1:电源电路的设计
- 3.2.3 电源电路设计注意事项
- 3.3 项目实战:复位电路的设计
- 3.3.1 概述
- 3.3.2 范例2:复位电路的设计
- 3.3.3 复位电路设计注意事项
- 3.4 项目实战:时钟电路的设计
- 3.4.1 概述
- 3.4.2 范例3:时钟电路的设计
- 3.4.3 时钟电路设计注意事项
- 3.5 项目实战:调试电路的设计
- 3.5.1 概述
- 3.5.2 范例4:调试电路的设计
- 3.5.3 调试电路设计注意事项
- 3.6 项目实战:启动电路的设计
- 3.6.1 概述
- 3.6.2 启动电路分析及工作原理
- 3.7 习题与巩固
- 第4章 通用输入输出端口应用
- 4.1 GPIO工作原理
- 4.1.1 STM32F103C8T6单片机的引脚
- 4.1.2 引脚内部构造
- 4.1.3 GPIO的8种工作模式
- 4.2 GPIO寄存器功能详解
- 4.2.1 端口配置低寄存器(GPIOX_CRL)
- 4.2.2 端口配置高寄存器(GPIOX_CRH)
- 4.2.3 端口输入数据寄存器(GPIOX_IDR)
- 4.2.4 端口输出数据寄存器(GPIOX_ODR)
- 4.2.5 端口位设置/清除寄存器(GPIOX_BSRR)
- 4.2.6 端口位清除寄存器(GPIOX_BRR)
- 4.3 利用库函数使用GPIO的方法
- 4.3.1 初始化端口
- 4.3.2 初始化时钟
- 4.3.3 GPIO引脚控制
- 4.4 项目实战:开关量驱动外设
- 4.4.1 GPIO硬件接口电路设计要点
- 4.4.2 范例5:GPIO驱动发光二极管
- 4.4.3 范例6:GPIO驱动蜂鸣器
- 4.4.4 范例7:GPIO驱动数码管
- 4.5 习题与巩固
- 第5章 系统节拍定时器
- 5.1 系统节拍定时器概述
- 5.2 系统节拍定时器的相关寄存器功能详解
- 5.2.1 控制和状态寄存器CTRL
- 5.2.2 重装载值寄存器LOAD
- 5.2.3 当前值寄存器VAL
- 5.3 利用库函数设置GPIO的方法
- 5.3.1 系统节拍定时器结构体
- 5.3.2 系统节拍定时器库函数
- 5.3.3 范例8:利用系统节拍定时器精确延时
- 5.4 项目实战:人机界面之液晶显示
- 5.4.1 液晶显示器简介
- 5.4.2 液晶模块引脚分布
- 5.4.3 液晶模块的控制指令
- 5.4.4 液晶显示器的工作时序
- 5.4.5 液晶显示器的字符集
- 5.4.6 范例9:利用液晶显示器输出信息
- 5.5 习题与巩固
- 第6章 STM32单片机的中断系统
- 6.1 中断相关的概念
- 6.1.1 什么是中断
- 6.1.2 中断处理过程
- 6.1.3 什么是中断源
- 6.1.4 什么是中断信号
- 6.1.5 中断屏蔽的概念
- 6.1.6 中断优先级及中断嵌套
- 6.1.7 Cortex-M3内核的嵌套向量中断控制器
- 6.1.8 STM32的中断控制固件库
- 6.2 STM32的中断系统
- 6.2.1 什么是异常
- 6.2.2 STM32的中断通道
- 6.2.3 固件库中中断向量区的定义
- 6.2.4 利用库函数控制NVIC方法
- 6.3 STM32单片机的EXTI
- 6.3.1 什么是外部中断/事件控制器EXTI
- 6.3.2 EXTI功能结构
- 6.3.3 中断/事件线的种类
- 6.3.4 STM32固件库中EXTI的初始化结构体
- 6.3.5 STM32固件库中EXTI的相关函数
- 6.4 项目实战:人机交互之按键
- 6.4.1 按键分类
- 6.4.2 按键的接法
- 6.4.3 矩阵键盘扫描原理
- 6.4.4 按键的消抖处理
- 6.4.5 按键程序处理方法
- 6.4.6 范例10:按键控制彩灯
- 6.5 习题与巩固
- 第7章 STM32单片机的定时器
- 7.1 定时器的工作原理
- 7.1.1 定时器简介
- 7.1.2 通用定时器的时钟源
- 7.1.3 通用定时器的定时时钟
- 7.1.4 定时器功能
- 7.1.5 定时器定时时间
- 7.1.6 定时器的计数模式
- 7.2 通用定时器的相关寄存器功能详解
- 7.2.1 控制寄存器1(TIMx_CR1)
- 7.2.2 中断使能寄存器(TIMx_DIER)
- 7.2.3 预分频寄存器(TIMx_PSC)
- 7.2.4 计数器(TIMx_CNT)
- 7.2.5 自动重装载寄存器(TIMx_ARR)
- 7.2.6 状态寄存器(TIMx_SR)
- 7.3 固件库中定时器的相关内容
- 7.3.1 固件库中定时器的结构体
- 7.3.2 固件库中定时器的相关库函数
- 7.3.3 利用固件库设置通用定时器方法
- 7.3.4 范例11:利用通用定时器进行精确定时
- 7.4 PWM原理
- 7.4.1 什么是PWM
- 7.4.2 STM32单片机如何产生PWM信号
- 7.4.3 STM32单片机PWM信号输出控制
- 7.4.4 PWM信号的输出引脚控制
- 7.5 PWM相关寄存器的功能详解
- 7.5.1 捕获/比较模式寄存器(TIMx_CCMR1/2)
- 7.5.2 捕获/比较使能寄存器(TIMx_CCER)
- 7.5.3 捕获/比较寄存器(TIMx_CCR1~TIMx_CCR4)
- 7.6 固件库中PWM的相关内容
- 7.6.1 PWM功能的相关结构体
- 7.6.2 PWM功能的相关库函数
- 7.6.3 使用固件库设置PWM的方法
- 7.6.4 范例12:三色彩灯控制
- 7.7 习题与巩固
- 第8章 STM32单片机的串行通信
- 8.1 串行通信的基本概念
- 8.1.1 数据通信方式
- 8.1.2 异步传输的字符数据帧
- 8.1.3 异步通信
- 8.1.4 波特率
- 8.2 RS-232C总线标准
- 8.3 STM32系统的RS-232C传输接口
- 8.3.1 RS-232C的电平转换
- 8.3.2 典型的RS-232C接口电路
- 8.4 不同单片机之间的串行总线连接
- 8.4.1 微处理器间直接通信
- 8.4.2 利用RS-232通信
- 8.5 STM32的串行通信接口
- 8.5.1 STM32的UART特性
- 8.5.2 STM32的UART引脚
- 8.5.3 STM32的UART结构
- 8.6 STM32串行端口的使用方法
- 8.6.1 STM32的UART时钟控制
- 8.6.2 STM32的UART引脚配置
- 8.6.3 STM32的串口波特率
- 8.6.4 STM32的UART寄存器功能详解
- 8.6.5 STM32的UART的控制
- 8.6.6 STM32的UART的数据读写
- 8.7 STM32的UART中断使用
- 8.7.1 STM32的UART的收发中断控制
- 8.7.2 STM32的UART中断使用方法
- 8.8 添加printf功能
- 8.9 主从机通信
- 8.9.1 范例13:查询法
- 8.9.2 范例14:中断法
- 8.10 习题与巩固
- 第9章 STM32单片机的模数转换器
- 9.1 输入信号分类形式
- 9.1.1 模拟信号和数字信号
- 9.1.2 电压信号和电流信号
- 9.1.3 单次信号和连续信号
- 9.2 模数转换的原理
- 9.3 模数转换器的工作过程
- 9.4 模数转换器的相关概念
- 9.4.1 基准源
- 9.4.2 模数转换器的分类
- 9.4.3 模数转换器的主要技术指标
- 9.5 STM32的模数转换器
- 9.5.1 STM32的模数转换器特性
- 9.5.2 STM32的模数转换器功能剖析
- 9.6 STM32的ADC相关寄存器功能详解
- 9.6.1 ADC控制寄存器1(ADC_CR1)
- 9.6.2 ADC控制寄存器2(ADC_CR2)
- 9.6.3 ADC采样时间寄存器1(ADC_SMPR1)
- 9.6.4 ADC采样时间寄存器2(ADC_SMPR2)
- 9.6.5 ADC注入数据寄存器x (ADC_JDRx)
- 9.6.6 ADC规则数据寄存器(ADC_DR)
- 9.6.7 ADC状态寄存器(ADC_SR)
- 9.7 STM32的ADC转换模式
- 9.7.1 单次转换模式
- 9.7.2 连续转换模式
- 9.8 固件库中的ADC结构体及库函数
- 9.8.1 ADC初始化结构体
- 9.8.2 ADC相应库函数
- 9.9 ADC应用设计深入讨论
- 9.9.1 工作电压的稳定性
- 9.9.2 参考电压的确定
- 9.9.3 采样时钟的选择
- 9.9.4 模拟噪声的抑制
- 9.9.5 校准
- 9.9.6 ADC开关控制
- 9.10 数字电位器
- 9.10.1 范例15:电位器原理图
- 9.10.2 范例16:读取模数转换器通道电压——查询法
- 9.10.3 范例17:读取模数转换器通道电压——中断法
- 9.11 习题与巩固
- 第10章 综合项目之温度控制系统
- 10.1 单片机系统的程序结构
- 10.1.1 任务的划分
- 10.1.2 程序实时性
- 10.1.3 前后台程序结构的优点与缺点
- 10.1.4 改进前后台程序的方法
- 10.1.5 范例18:缓冲区(FIFO)应用实例
- 10.2 利用状态机改进单片机系统
- 10.2.1 初步认识状态机
- 10.2.2 状态机描述方法
- 10.2.3 通过状态转移图生成代码
- 10.2.4 范例19:状态机项目
- 10.3 温度传感器
- 10.4 习题与巩固
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。