《基于ARM的微机原理与接口技术》[52M]百度网盘|pdf下载|亲测有效
📦 Download Book
- 微机原理与ARM架构脱节:将传统微机原理知识与ARM Cortex-M3架构相结合,帮助读者从x86思维平滑过渡到嵌入式ARM开发。
- 汇编语言学习枯燥:通过STM32平台实例讲解ARM汇编指令与程序设计,让读者在具体硬件上理解汇编的作用。
- 接口技术实践不足:以STM32F103VET6为背景,详细介绍GPIO、中断、定时器、串口等常见接口的原理与应用。
- 实验代码调试困难:书中实例代码均经过严格仿真调试,读者可直接用于工程项目,降低实验门槛。
- 嵌入式开发入门无平台:提供从开发环境搭建、固件库使用到应用系统设计的完整路径,适合教学与自学。
- 计算机类、电子类、电气自动化专业本科生:本书可作为微机原理、嵌入式系统等课程的教材,理论与实践并重。
- 高职高专及培训班学生:内容深入浅出、实例丰富,适合作为嵌入式开发入门与实训教材。
- 单片机应用领域工程师:希望从8位单片机转向ARM Cortex-M3平台,本书提供系统的架构讲解与接口开发案例。
- 智能车、电子设计竞赛参赛者:STM32是竞赛常用主控,本书的接口应用与系统设计案例可直接参考。
- 先理解架构再动手编程:第2-3章的Cortex-M3架构和中断机制是基础,务必先读懂再进入开发章节。
- 汇编与C语言对照学习:第5-6章汇编内容可与C语言开发对照理解,重点掌握寻址方式和子程序调用。
- 边做实验边学接口:第8-11章的GPIO、中断、定时器、串口等内容应在开发板上逐一实验,观察现象。
- 利用配套资源:从课程网站下载电子教案和实例代码,结合仿真调试加深理解。
- 综合案例贯穿全书:第12章的应用系统设计综合了前面各章知识,建议在学完接口章节后独立完成。
- 掌握Cortex-M3架构原理:理解寄存器、流水线、存储器管理、异常与中断等核心机制,建立ARM体系结构认知。
- 具备ARM汇编编程能力:能够阅读和编写ARM汇编程序,理解汇编与C语言的对应关系。
- 熟练使用STM32固件库开发:能够基于STM32F103VET6和标准外设库进行GPIO、中断、定时器、串口等接口开发。
- 能够独立完成嵌入式项目:具备从需求分析、硬件选型、软件设计到调试测试的完整嵌入式系统开发能力。
- 积累可复用的工程代码:书中经过仿真调试的实例代码可直接移植到实际工程项目中,提高开发效率。
📖 Book Introduction
编辑推荐
本书根据高等工程教育对动手能力培养的要求,紧密结合学习平台,注重实验实践内容的编写,实验数量丰富。教材中与学习平台相关的实例代码经过严格的仿真调试,读者可将它们加入到自己的工程项目中。
本书深入浅出,层次分明,实例丰富,突出实用,可操作性强,特别适合作为普通高校计算机类、电子类、电气自动化及机械专业的教学用书,还可作为高职高专以及培训班的教材使用,同时,也可作为从事单片机应用领域的工程技术人员的参考书。与教材配套的电子教案和书中的所有实例以及最后一章的应用系统设计相关内容都可以从http://course.sdu.edu.cn/arm.html网站上下载。
内容简介
本书首先介绍微型计算机的相关概念及嵌入式系统的应用,接着介绍Cortex M3微处理器架构及开发方法,介绍汇编语言及其程序设计。在开发应用方面,以STM32F103VET6为背景,介绍常见接口的原理及应用。根据高等工程教育对动手能力培养的要求,紧密结合学习平台,注重实验实践内容的编写,实验数量丰富。教材中与学习平台相关的实例代码均经过作者严格的仿真调试,读者可将它们加入到自己的工程项目中。
作者简介
陈桂友,男,1969年6月生,博士,山东大学控制科学与工程学院教授,硕士研究生导师。1995年7月毕业于山东工业大学获得工学硕士学位并留校任教。2005年12月获得山东大学控制理论与控制工学博士学位。2007年8月~2008年8月在加拿大阿尔伯塔大学做访问学者。2009年晋升为山东大学教授。主要研究方向:a) 嵌入式系统与人工智能;b) 系统状态识别。山东大学“嵌入式系统与智能控制”创新平台负责人,全国万名优秀创新创业导师,山东省高等学校创新创业教育导师。中国智慧城市工作委员会委员,中国自动化学会会员,山东省自动化学会理事。全国大学生智能车竞赛山东赛区组委会秘书长。山东省大学生智能技术应用设计大赛发起人。
发表论文20余篇,出版著作8部,申请发明专利6项,授权2项;申请实用新型专利2项,授权1项。主持省级课题1项,主持山东省重点研发计划项目1项,作为主要研究人员参与国家自然科学基金课题2项。作为课题负责人,完成企事业委托项目30余项,具有丰富的智能技术领域的工程实践经验。
目录
第1章基础知识
1.1微型计算机发展概述
1.2微型计算机中的数制及其编码
1.2.1微型计算机中的数制
1.2.2不同数制之间的转换
1.2.3数值数据的编码及其运算
1.2.4非数值数据的编码
1.3微型计算机领域的几个相关概念
1.3.1常用单位及术语
1.3.2微型计算机的基本构成
1.3.3微控制器与嵌入式系统
1.3.4常见技术
1.4ARM概述
1.5微型计算机的应用
1.6习题
第2章CortexM3处理器
2.1CortexM3处理器简介及其组件
2.1.1CortexM3处理器简介
2.1.2CortexM3处理器的组件
2.1.3总线结构
2.2流水线
2.3寄存器
2.3.1通用寄存器
2.3.2特殊功能寄存器
2.4工作模式和工作等级
2.5堆栈
2.5.1堆栈的基本操作
2.5.2CortexM3的双堆栈机制
2.6存储器管理
2.6.1存储器空间分配
2.6.2位带操作
2.6.3端模式
2.7异常与中断
2.7.1中断号与优先级
2.7.2向量表
2.7.3中断输入及挂起
2.7.4Fault类异常
2.7.5中断的具体行为
2.7.6中断嵌套控制
2.7.7高级中断技术
2.7.8异常返回值
2.8复位序列
2.9习题
第3章STM32F1系列微控制器
3.1STM32F1系列微控制器简介
3.2STM32F1系列产品系统构架和STM32F103ZET6内部结构
3.2.1STM32F1系列产品系统架构
3.2.2STM32F103ZET6的内部架构
3.3STM32F103ZET6的存储器映像
3.4STM32F103ZET6的时钟结构
3.5STM32F103VET6的引脚
3.6STM32F103VET6最小系统设计
3.7习题
第4章汇编语言及其程序设计
4.1编程语言简介
4.2指令分类、条件域和指令格式
4.3寻址方式
4.4CortexM3指令集
4.4.1数据传送类指令
4.4.2数据处理类指令
4.4.3跳转指令
4.4.4其他指令
4.4.5Thumb指令及应用
4.5汇编语言程序设计举例
4.5.1分支程序设计
4.5.2循环程序设计
4.5.3子程序的调用与返回
4.6习题
第5章ARM微控制器开发
5.1开发流程
5.2处理器的启动过程
5.3输入和输出接口
5.4程序映像
5.5C语言开发ARM应用
5.6固件库
5.6.1基于固件库开发和直接操作寄存器的区别
5.6.2STM32固件库
5.7习题
第6章通用输入/输出接口
6.1通用输入/输出接口概述
6.2GPIO的功能
6.3GPIO的寄存器
6.4RCC时钟模块的寄存器
6.5GPIO的使用
6.5.1利用汇编语言访问GPIO
6.5.2利用C语言直接操作寄存器方法访问GPIO
6.5.3利用固件库函数方法访问GPIO
6.6习题
第7章中断和事件
7.1STM32的中断源
7.2STM32的中断管理
7.2.1中断向量寄存器
7.2.2中断系统设置过程
7.3外部中断/事件控制器
7.3.1外部中断/事件控制器
7.3.2外部中断/事件控制器相关寄存器
7.4外部中断的使用
7.4.1外部中断相关的固件库函数
7.4.2利用固件库函数开发外部中断应用
7.5习题
第8章定时器
8.1STM32通用定时器概述
8.1.1高级控制定时器(TIM1和TIM8)
8.1.2普通定时器(TIMx)
8.1.3基本定时器(TIM6和TIM7)
8.1.4定时器的时钟
8.2普通定时器的结构
8.2.1时基单元
8.2.2计数器模式
8.2.3时钟选择
8.2.4捕获/比较通道
8.3普通定时器的工作模式
8.4普通定时器的寄存器
8.5普通定时器的使用
8.5.1普通定时器的固件库函数
8.5.2普通定时器的使用举例
8.6习题
第9章串行通信
9.1通信的有关概念
9.1.1串行通信的相关概念
9.1.2并行通信中的相关概念
9.2STM32的异步串行通信接口
9.2.1STM32异步串行通信接口简介
9.2.2STM32的USART引脚重映射
9.2.3STM32的USART接口结构
9.2.4STM32的USART特性
9.2.5STM32的USART中断请求
9.2.6STM32的USART寄存器
9.2.7STM32的USART固件库函数
9.2.8STM32的USART使用举例
9.3STM32的SPI接口
9.3.1STM32的SPI接口简介
9.3.2STM32的SPI接口结构
9.3.3STM32的SPI接口配置
9.3.4STM32的SPI接口数据发送与接收过程
9.3.5CRC计算
9.3.6状态标志
9.3.7关闭SPI
9.3.8STM32的SPI接口中断
9.3.9STM32的SPI接口的寄存器
9.3.10STM32的SPI接口固件库函数
9.3.11STM32的SPI接口应用实例
9.4习题
第10章模拟量模块
10.1模数转换器的工作原理及性能指标
10.1.1模数转换器的工作原理
10.1.2模数转换器的性能指标
10.2STM32F103VET6集成的ADC模块
10.2.1STM32的ADC概述
10.2.2STM32的ADC模块结构
10.2.3STM32的ADC配置
10.2.4STM32的ADC应用特征
10.2.5STM32的ADC中断请求
10.2.6STM32的ADC寄存器
10.2.7STM32的ADC固件库函数
10.2.8STM32的ADC使用举例
10.3数模转换器的工作原理及性能指标
10.3.1数模转换器的工作原理
10.3.2数模转换器的性能指标
10.4STM32F103VET6集成的DAC模块
10.4.1STM32的DAC主要特征
10.4.2STM32的DAC接口结构
10.4.3STM32的DAC配置
10.4.4STM32的DAC寄存器
10.4.5STM32的DAC固件库函数
10.4.6STM32的DAC使用举例
10.5习题
第11章DMA控制器
11.1DMA的结构和主要特征
11.2DMA的功能描述
11.2.1DMA处理
11.2.2仲裁器
11.2.3DMA通道
11.2.4可编程的数据传输宽度、对齐方式和数据大小端
11.2.5DMA中断
11.2.6DMA请求映像
11.3DMA的寄存器
11.4DMA的固件库函数
11.4.1DMA寄存器C语言结构定义
11.4.2DMA库函数
11.5DMA使用举例
11.6习题
第12章FSMC控制器
12.1FSMC的功能和结构
12.1.1FSMC的功能描述
12.1.2FSMC的结构
12.2AHB接口
12.3FSMC外部设备地址映像
12.4NOR闪存和PSRAM控制器
12.4.1外部存储器接口信号
12.4.2支持的存储器及其操作
12.4.3NOR闪存和PSRAM控制器时序
12.4.4同步的成组读
12.5NOR闪存和PSRAM控制器寄存器
12.6FSMC固件库函数
12.7FSMC使用举例
12.8习题
附录AASCII码表
附录B逻辑符号对照表
附录C使用MDK开发调试汇编语言程序
C.1MDK简介
C.2使用MDK调试汇编语言程序
参考文献
前言/序言
“微机原理与接口技术”是电子信息类、自动化类、精密仪器、机电一体化等专业的核心课程。微型计算机(简称微机)的应用范围十分广阔,已渗透到国防、工业、农业、企事业和人们生活的方方面面,并且发挥着越来越重要的作用,因而,掌握微机原理及其接口技术就显得十分重要。
在我国高校“微机原理及接口技术”的教学历史中,20世纪80年代,首先是以Z80为CPU的单板机为主流教学机型,后来是以Intel 8086为CPU的教学实验箱。目前,基于8086的实验装置很难维护(8086芯片很难买到),许多学校的“微机原理与接口技术”课程实验只能通过软件模拟或者几乎不开设实验课,教学效果大打折扣。在实际工程应用中,很少采用基于8086的底层控制系统硬件设计和汇编语言的编程开发,取而代之的是基于ARM架构的硬件电路设计和软件设计。特别是在测控系统设计方面,基于ARM微控制器的设计方案越来越得到工程师的认可。ARM微控制器无论在体系结构、汇编语言程序设计、接口技术、开发手段等诸多方面都比8086具有更加优异的特征。因此,本书以意法半导体公司的基于32位ARM内核的STM32F103为背景机型,介绍微型计算机原理及接口技术。STM32的网上资源非常丰富,便于读者学习参考。
作者从2012年开始,便尝试使用STM32为背景机型,进行“微机原理与接口技术”的讲解。经过数年的教学实践和工程项目实践,对教学内容和工程项目进行凝练,形成了本书。本书不仅介绍微型计算机的相关概念及微型计算机的应用,精准对标原来基于8086的“微机原理与接口技术”课程的工作原理、汇编语言程序设计、常见接口等内容,更进一步介绍目前的新技术,并从应用的角度强调开发方法和工程实现,注重学生实践能力和工程素养的培养。本书包含以下内容:
第1章基础知识。介绍微型计算机系统领域的几个相关概念,概述ARM的发展,并介绍微型计算机在相关领域中的应用。
第2章CortexM3处理器。介绍CortexM3处理器的体系结构,包括内核、系统模型、存储器以及异常中断的基本概况。
第3章STM32F1系列微控制器。概述STM32F1系列微控制器产品,介绍STM32F1系列为控制的典型产品STM32F103ZET6的内部结构、时钟及最小系统等内容。
第4章汇编语言及其程序设计。介绍CortexM3的寻址方式、指令集以及汇编语言程序设计。
第5章ARM微控制器开发。介绍CortexM3微控制器应用系统的开发方法和过程。
第6~12章典型外设及应用。分别介绍通用输入输出接口、中断和事件、定时器、串行通信、模拟量模块、DMA控制器、FSMC控制器的原理结构和应用。
本书中的电路符号采用国外文献常见形式,其与国际符号的对应关系可参考附录B。在本书的编写过程中,得到了ARM公司和意法半导体公司的大力支持和帮助,得到了山东大学的相关师生的关心和支持。在此,对所有提供帮助的人深表感谢!
由于作者水平所限,书中难免有不妥或错误之处,敬请读者批评指正,以便修订时改进。
作者
2020年3月
📑 Table of Contents
- 微型计算机基础与ARM概述
- Cortex-M3处理器架构:寄存器、流水线与存储器管理
- Cortex-M3异常与中断处理机制
- STM32F1系列微控制器系统架构与最小系统设计
- ARM汇编语言基础与寻址方式
- ARM汇编程序设计:分支、循环与子程序
- ARM微控制器开发流程与固件库使用
- 通用输入输出接口(GPIO)原理与应用
- 中断系统与外部中断应用
- 定时器与PWM输出应用
- 串行通信接口(USART、SPI、I2C)原理与应用
- 基于ARM的应用系统设计综合案例