新書推薦:
《
收尸人
》
售價:HK$
74.8
《
大模型应用开发:RAG入门与实战
》
售價:HK$
91.8
《
不挨饿快速瘦的减脂餐
》
售價:HK$
68.8
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:HK$
113.6
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:HK$
135.7
《
化妆品学原理
》
售價:HK$
57.3
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:HK$
48.3
《
爱你,是我做过最好的事
》
售價:HK$
57.3
|
編輯推薦: |
(1)关注基础知识和基本原理,关注细节。
(2)突出理论联系实际。“学中做、做中学”。
(3)全面覆盖,重点突出。
(4)本书的作者既是学校一线教师,又是长期从事芯片检测和SDK库开发的科研及工程技术人员。
(5)教学资源丰富,包括课件、案例视频、源代码。
|
內容簡介: |
本书以珠海极海半导体有限公司设计生产的APM32E103微控制器为例,详细讲解了ARM Cortex-M3处理器内核的基本原理及APM32E103微控制器的外设接口、SDK库和编程。主要内容包括ARM Cortex-M3处理器内核、APM32E103微控制器及SDK库、通用输入输出、中断和事件、定时器、USART接口、I2C接口、模拟量模块AD/DA、DMA控制器、SPI接口、SDIO接口、实时时钟和备份寄存器、CAN接口、EMMC控制器和USB接口及其他外设应用实例。本书在重视基础知识的同时,还列举了大量翔实的实例,这些实例大部分源自编者在微控制器测试过程中的积累与沉淀。
本书可作为高等院校计算机、自动化、电子信息、测控技术、电气工程等专业开设嵌入式微控制器课程的教材,也可作为从事嵌入式微控制器开发及应用的相关工程技术人员的参考用书。
|
關於作者: |
丁励
----------------------------
丁励,郑州大学—艾派克集成电路设计与应用研究院院长;浙江大学电气工程学院研究生企业导师;浙江省浙江大学-珠海艾派克联合实验室副主任;嵌入式系统广东省珠海分中心副主任;广东省珠海市软件行业协会专家委员会副主任职务;重点实验室“光电成像技术与系统”珠海分室学术委员会委员;珠海市集成电路行业杰出人物;获“珠海市香洲区人才”称号;中国第一枚通用耗材芯片设计者,基于国产CPU打印机主控SoC芯片研发带头人,2017年国家01重大专项负责人。
郜超军
----------------------------
郜超军,郑州大学-艾派克集成电路设计与应用研究院副院长。授权软件著作权1项,实用新型6项、发明专利2项;集成电路布图登记10项;参与《国产打印机核心SoC芯片系列化自主研制及规模化应用》项目,获得中国电子学会科技进步一等奖。指导学生参加研究生电子设计大赛获得国家特等奖,为郑州大学历史最高奖项。指导学生参加“互联网 ”大赛,获得国家金奖。
侯广乾
----------------------------
侯广乾,郑州大学-艾派克集成电路设计与应用研究院副院长;极海微电子股份有限公司监事、研发总监;珠海艾派克盈丰投资中心(有限合伙)执行事务合伙人。
2011年,获得珠海市科技进步一等奖;2014年,获得珠海市青年优秀人才荣誉称号;2019年,获得广东省科技进步二等奖;2017年-2020年,主导参与工信部核高基《国产嵌入式CPU规模化应用》项目; 2021年,获得珠海市科技进步特等奖;2022年,获得中国电子学会科技进步一等奖。
|
目錄:
|
目 录
第1章 ARM Cortex-M3处理器内核 1
1.1 ARM Cortex-M3处理器概述 1
1.1.1 ARM Cortex-M3处理器简介 1
1.1.2 ARM Cortex-M3处理器特性 2
1.2 ARM Cortex-M3处理器架构 2
1.2.1 架构简介及模块框图 3
1.2.2 操作模式和状态 5
1.2.3 寄存器 5
1.3 指令集 7
1.3.1 指令集背景简介 7
1.3.2 指令集分类 8
1.4 异常和中断 10
1.4.1 异常 10
1.4.2 嵌套向量中断控制器(NVIC) 11
1.4.3 向量表 12
1.5 存储器系统 13
1.5.1 存储器特性简介 13
1.5.2 存储器映射 13
1.6 复位 14
1.7 调试 15
本章小结 17
习题1 17
第2章 APM32E103微控制器及SDK库 18
2.1 APM32E103微控制器 18
2.1.1 概述 18
2.1.2 系统架构 18
2.1.3 存储器映射 22
2.1.4 位段 23
2.1.5 启动配置 24
2.1.6 电源 24
2.1.7 复位 25
2.1.8 时钟 26
2.2 APM32E103微控制器的SDK库 28
2.2.1 SDK库概述 28
2.2.2 SDK库的使用 30
2.2.3 SDK例程使用 35
2.3 本章小结 37
习题2 37
第3章 通用输入输出 38
3.1 通用输入输出概述 38
3.1.1 GPIO功能及配置 38
3.1.2 AFIO功能及配置 41
3.2 GPIO框图剖析及原理 42
3.2.1 GPIO输入模式剖析 43
3.2.2 GPIO输出模式剖析 44
3.2.3 GPIO位带操作原理 46
3.2.4 GPIO初始化结构体 47
3.3 APM32-GPIO编程实例 48
3.3.1 实例目标 48
3.3.2 硬件设计 48
3.3.3 软件设计 49
3.3.4 下载验证 51
本章小结 52
习题3 52
第4章 中断和事件 53
4.1 中断和事件概述 53
4.2 NVIC原理及配置 54
4.2.1 中断和异常向量表 54
4.2.2 中断优先级 58
4.2.3 中断挂起与解挂 59
4.2.4 中断活动与使能控制 60
4.2.5 中断编程要点 60
4.3 EINT原理及框图分析 61
4.3.1 EINT中断/事件线路 61
4.3.2 EINT结构框图分析 62
4.3.3 EINT中断/事件配置 64
4.3.4 EINT中断、事件线对比 66
4.4 中断和事件编程实例 67
4.4.1 实例目标 67
4.4.2 硬件设计 67
4.4.3 软件设计 67
4.4.4 下载验证 70
本章小结 72
习题4 72
第5章 定时器 73
5.1 APM32E103微控制器的定时器 73
5.2 APM32E103微控制器的基本定时器(TMR6/7) 75
5.2.1 基本定时器的主要结构 75
5.2.2 时钟源选择 75
5.2.3 计数方式 76
5.2.4 基本定时器的寄存器 77
5.3 APM32E103微控制器的通用定时器(TMR2/3/4/5) 77
5.3.1 通用定时器的主要结构 77
5.3.2 计数模式 79
5.3.3 输入捕获模式 82
5.3.4 比较输出模式 83
5.3.5 PWM输出模式 83
5.3.6 PWM输入模式 84
5.3.7 单脉冲模式 85
5.3.8 编码器接口模式 85
5.3.9 强制输出模式 85
5.3.10 中断和DMA请求 85
5.4 APM32E103微控制器的高级定时器(TMR1/8) 85
5.5 APM32E103微控制器的定时器编程 88
5.5.1 与定时器相关的库函数 88
5.5.2 定时器编程实例 91
本章小结 94
习题5 94
第6章 USART接口 95
6.1 串行通信简介 95
6.2 APM32E103微控制器的USART简介 98
6.2.1 主要特征 99
6.2.2 功能简介 99
6.2.3 USART中断 101
6.2.4 USART的DMA操作 102
6.3 USART串口通信编程 103
6.3.1 USART初始化 103
6.3.2 APM32E103微控制器的USART库函数 104
6.3.3 串口中断收发实例 105
本章小结 109
习题6 109
第7章 I2C接口 110
7.1 I2C总线概述 110
7.1.1 I2C总线物理结构 110
7.1.2 I2C总线数据传输 112
7.2 APM32E103微控制器的I2C接口 115
7.2.1 主要特点 116
7.2.2 APM32E103微控制器I2C接口结构 116
7.2.3 I2C通信中的事件 126
7.2.4 工作模式 128
7.2.5 I2C中断 129
7.2.6 I2C接口的DMA操作 130
7.3 APM32E103微控制器的I2C接口编程 131
7.3.1 I2C的相关库函数 131
7.3.2 I2C编程实例 133
本章小结 139
习题7 139
第8章 模拟量模块AD/DA 140
8.1 模拟/数字转换器概述 140
8.2 APM32E103微控制器的ADC功能描述 141
8.2.1 APM32E103微控制器的ADC简介 141
8.2.2 ADC的转换模式 142
8.2.3 单通道转换 143
8.2.4 多通道转换 144
8.2.5 ADC的相关设置 149
8.3 APM32E103微控制器的ADC编程 152
8.3.1 编程步骤 152
8.3.2 编程具体示例 153
8.4 数字/模拟转换器概述 156
8.5 APM32E103微控制器的DAC功能描述 158
8.5.1 APM32E103微控制器的DAC功能简介 158
8.5.2 DAC的相关设置 159
8.6 APM32E103微控制器的DAC编程 161
本章小结 163
习题8 164
第9章 DMA控制器 165
9.1 DMA概述 165
9.2 APM32E103微控制器的DMA功能描述 166
9.2.1 DMA简介 166
9.2.2 DMA请求 167
9.2.3 DMA传输 168
9.3 APM32E103微控制器的DMA编程 170
本章小结 174
习题9 174
第10章 SPI接口 175
10.1 SPI总线概述 175
10.1.1 SPI总线物理结构 175
10.1.2 SPI总线数据传输 177
10.2 APM32E103微控制器的SPI接口 179
10.2.1 主要特性 179
10.2.2 主要结构 180
10.3 APM32E103微控制器的SPI编程 187
10.3.1 SPI库函数 187
10.3.2 SPI编程实例 189
10.4 APM32E103微控制器的I2S接口 195
10.4.1 I2S总线物理结构 195
10.4.2 I2S设备互联 196
10.4.3 I2S数据格式 197
10.4.4 APM32E103微控制器的I2S接口简介 198
本章小结 200
习题10 200
第11章 SDIO接口 201
11.1 SDIO简介 201
11.1.1 SDIO总线物理层 201
11.1.2 SDIO总线协议 202
11.2 APM32E103微控制器的SDIO 206
11.2.1 主要特征 206
11.2.2 功能描述 207
11.2.3 标准库介绍 207
11.3 SD卡读写测试实例 210
11.3.1 硬件设计 210
11.3.2 软件设计 211
11.3.3 实例输出结果 213
本章小结 213
习题11 213
第12章 实时时钟和备份寄存器 214
12.1 实时时钟概述 214
12.1.1 内部结构 214
12.1.2 功能特性 215
12.1.3 复位过程 216
12.2 备份寄存器(BAKPR) 217
12.3 RTC编程 218
12.3.1 RTC初始化 218
12.3.2 RTC时间写入初始化 219
12.3.3 APM32E103微控制器的RTC库函数 220
12.3.4 利用APM32E103微控制器的RTC模块实现数字日历和闹钟功能实例 220
本章小结 227
习题12 227
第13章 CAN接口 228
13.1 CAN协议简介 228
13.1.1 CAN物理层 229
13.1.2 CAN协议层 236
13.2 CAN控制器 240
13.2.1 CAN功能及配置 240
13.2.2 CAN编程要点 249
13.3 APM32E103 CAN编程 254
13.3.1 目标 254
13.3.2 工作原理 254
13.3.3 编程要点及代码分析 254
13.3.4 下载验证 257
本章小结 258
习题13 258
第14章 EMMC控制器和
USB接口 259
14.1 EMMC控制器 259
14.1.1 EMMC控制器介绍 259
14.1.2 EMMC控制器实例 261
14.2 USB接口 266
14.2.1 USB应用场景 266
14.2.2 USB模拟HID设备
实例 268
本章小结 280
习题14 280
第15章 其他外设应用实例 281
15.1 SysTick 281
15.2 看门狗定时器 283
15.3 Flash及ISP、IAP编程 285
15.3.1 APM32E103微控制器芯片启动方式介绍 285
15.3.2 ISP编程实验 286
15.3.3 IAP编程实例 287
15.4 浮点运算单元 292
15.4.1 APM32E103微控制器的FPU 292
15.4.2 浮点运算单元编程实例 293
15.5 功耗管理 295
15.5.1 供电方案 296
15.5.2 SLEEP模式编程实例 297
15.5.3 STANDBY模式
编程实例 300
本章小结 302
习题15 302
参考文献 303
特别鸣谢 304
|
內容試閱:
|
前 言
党的二十大报告指出,要“推动战略性新兴产业融合集群发展,构建新一代信息技术、人工智能、生物技术、新能源、新材料、高端装备、绿色环保等一批新的增长引擎”。随着物联网和人工智能等新兴交叉学科的兴起,具有信息收集、处理和联网功能且体积、成本严格可控的嵌入式系统走入人们的生活。作为嵌入式系统核心的微控制器(单片机)也从早期的8位、16位微控制器变为目前流行的处理能力更强的32位微控制器。而具有ARM内核的微控制器无疑已经主导了当今的微控制器市场,从消费电子产品、智能家居、物联网,到工业测控、汽车电子、医疗电子和航空航天系统,无一不存在着ARM技术的身影。其中,作为ARM内核微控制器的一个典型系列,ARM Cortex-M3内核微控制器有较高的性价比,得到了广泛的应用。市场对ARM工程技术人员的需求,也促使众多高校把ARM内核微控制器的学习引入大学的培养体系。
APM32E103微控制器是由珠海极海半导体有限公司设计的32位工业级微控制器,基于 ARM Cortex-M3 处理器内核,与其他同类型微控制器相比,具有优异的产品性能,如主频可达120MHz,支持FPU、SDRAM等。该处理器也具有良好的可移植性。
参与本书编写的编者都是多年从事ARM内核微控制器设计、应用、教学和科研工作的专家学者,具有丰富的实践经验。通过阅读本书,读者不仅可以学习到ARM内核微控制器的基础知识,还可以丰富自身的实践经验,提高自身的创新水平。
本书共15章,第1章分析ARM Cortex-M3处理器内核的基本结构和工作原理;第2章讲解APM32E103微控制器的特点、开发流程及配套SDK库;第3章至第13章为主要外部设备讲解,包括GPIO、中断和事件、定时器、USART接口、I2C接口、模拟量模块AD/DA、DMA控制器、SPI接口、SDIO接口、实时时钟和备份寄存器、CAN接口等;第14章讲解EMMC控制器和USB接口;第15章是其他外部设备应用实例,包括SysTick定时器使用、看门狗编程、Flash编程、ISP和IAP编程、FPU编程、低功耗编程及实现。每章的本章小结方便读者回顾和复习本章知识。
本书第3、5章由丁励编写,第11、12章由郜超军编写,第6、14章由侯广乾编写,第7、10章由王军编写,第1、2章由张强编写,第4、13章由张楠编写,第8、9章由谷肖飞编写,第15章由丁锌源编写。本书的全部实例由孙明洲负责调试完成。本书由郑州大学-艾派克集成电路设计与应用研究院组织人员编写,研究院的研究生李子允、杨慧芳、张兵兵、冯嘉豪、武旭阳、邓超爱等参与了书籍的资料整理、绘图和实例测试工作。
本书具有以下特色。
(1)关注基础知识和基本原理,关注细节。目前,国内很多高校在开设微控制器方面的课程时,跳过了传统的8位微控制器,直接讲述ARM内核的32位微控制器,导致学生在微控制器基础知识方面的缺失。针对这一问题,本书在讲解微控制器常用外部设备时,首先详细描述了该外部设备的基本工作原理,再举实例讲解外部设备的使用方法,使学生能够循序渐进地掌握该外部设备的使用方法。
(2)突出理论联系实际。“学中做、做中学”,这样才能归纳、理解、总结出共性的知识,并建立起某个领域的知识体系。本书编者既是学校一线教师,又是长期从事芯片检测和SDK库开发的科研及工程技术人员,书中的很多实例都是编者在实际工作中用到的,对初学者起到较好的示范作用,对有经验的开发者也有较好的参考意义。
(3)全面覆盖,重点突出。在编写过程中,对一些常用外部设备,进行了重点细致的描述,以利于初学者能够深入掌握这些外部设备的使用方法。本书力求完整地描述APM32E103微控制器的全部外部设备,对FPU等一些不常用的外部设备,仅举出实例并讲解使用方法。
(4)本书制作了教学PPT,部分章节实例配备了演示和讲解视频,每章都附有习题并配备了习题答案。
(5)市面上的教材基本都是以国外微控制器为例来讲解ARM内核微控制器,本书是一本完整讲解国产 ARM 内核微控制器的教材,这对推动国产微控制器的发展有特殊的意义。
本书的编写得到了珠海极海半导体有限公司的大力支持,公司为本书的编写提供了软、硬件开发平台,本书的全部实例在珠海极海半导体有限公司APM32E103ZE EVAL Board开发板上完成。在此表示衷心的感谢!
由于本书涉及内容广泛,编者水平有限,书中不妥和疏漏之处在所难免,欢迎广大读者批评指正。
编 者
2024年4月
|
|