书籍作者:张沛昌 | ISBN:9787302635932 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:1723 |
创建日期:2024-04-28 | 发布日期:2024-04-28 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
GD32F3苹果派开发板(主控芯片为GD32F303ZET6)配套有多种教材,分别介绍微控制器基础外设、微控制器复杂外设、微机原理、操作系统等知识。本书为微机原理教程,通过15个实验分别介绍汇编语言基础、基于汇编的数据处理、程序流控制、存储器访问、函数封装、GPIO与流水灯、GPIO与独立按键、外部中断、定时器、SysTick、RCU、串口通信、ADC和DAC的原理与应用。全书程序代码的编写均遵循统一规范,且各实验采用模块化设计,以便将各模块应用于实际项目和产品中。
《GD32微控制器原理与应用》配有丰富的资料包,涵盖GD32F3苹果派开发板原理图、例程、软件包、PPT等。资料包将持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。
《GD32微控制器原理与应用》既可以作为高等院校电子信息、自动化等专业微控制器相关课程的教材,也可以作为微控制器系统设计及相关行业工程技术人员的入门培训用书。
本书各章内容安排如下:
第1、2章简要介绍本书所用开发平台和工具,以及开发工具的安装与配置,然后介绍微机工作原理和GD32F30x系列微控制器。
第3~8章以仿真实验为主线,对Keil软件的使用,工程的建立、编译和程序下载,以及汇编语言的基础知识进行介绍。
第9~17章介绍GPIO、外部中断、定时器、SysTick、 RCU、串口通信、ADC和DAC的原理及相关寄存器,并通过实验进行验证。
本书特点如下:
(1)本书内容对有一定微控制器基础的读者来说较为友好,建议先学习“卓越:工程师培养系列”教材中的《GD32F3 开发基础教程一基于 GD32F303ZET6》,再学习本书。
(2)本书适合具有ARM基础的嵌入式工程师学习,也可以作为高等院校电子类专业的教材。
(3)本书注重理论与实践相结合,对于高深晦涩的原理涉及较少,大多采用通俗易懂的语言深入浅出地进行介绍。原理介绍之后再进行实验,将理论运用到实际工程中,以巩固所学知识。
(4)书中的所有例程按照统一的工程架构设计,每个子模块都按照统-标准设计,以方便读者后续使用书中所学知识进一步开发, 或将其应用于项目当中。
(5)本书配有丰富的资料包,包含例程、软件包、教学课件、教学视频、参考资料等。这些资料会持续更新,读者可通过扫描二维码获取。
前 言
习近平总书记在党的二十大报告中指出,“教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑”“必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略”“坚持教育优先发展、科技自立自强、人才引领驱动”“加快建设教育强国、科技强国、人才强国”“全面提高人才自主培养质量,着力造就拔尖创新人才”。本书作为“卓越工程师培养系列”丛书之一,以快速提升工程人才实践能力为目标,通过大量实践,让读者对微控制器底层原理和应用有深入的理解和思考,全面掌握微控制器的基础知识。只有这样,才有可能设计出性能优异的产品。
本书主要介绍微控制器原理与应用,采用的硬件平台为GD32F3苹果派开发板,其主控芯片为GD32F303ZET6(封装为LQFP144),由兆易创新科技集团股份有限公司(以下简称“兆易创新”)研发并推出。兆易创新的GD32 MCU是中国高性能通用微控制器领域的领跑者,主要体现在以下几点:①GD32 MCU是中国最大的ARM MCU产品家族,已经成为中国32位通用MCU市场的主流之选;②兆易创新在中国第一个推出基于ARM Cortex-M3、Cortex-M4、Cortex-M23和Cortex-M33内核的MCU产品系列;③全球首个RISC-V内核通用32位MCU产品系列出自兆易创新;④在中国32位MCU厂商排名中,兆易创新连续五年位居第一。
“微机原理”作为高等院校工科电子类、信息类等专业的一门重要课程,旨在加强学生对计算机系统架构、汇编语言及计算机组成原理的了解。然而,市面上的多数书籍对架构知识涉及较少,或内容晦涩难懂,不利于读者全面了解系统架构知识并加以应用。此外,市面上针对国产32位微控制器的微机原理教材较少。为此,我们希望通过编写本书,使读者能够快速学习汇编语言,从而探索和了解CPU的工作方式,进一步提高编程技术。
“微机原理”教材的发展未来必将走向32位微控制器,这是不争的事实,但是否使用汇编语言,见仁见智。根据产业界的反馈,要理解计算机体系架构,就要了解指令系统。另外,现在很多产品都会涉及操作系统,如果没有汇编语言基础,就很难深入理解操作系统,更谈不上在操作系统上编写高性能、稳定、小尺寸的应用程序。我们建议先基于C语言学习32位微控制器,再基于汇编语言学习32位微控制器。前者可通过GD32系列教材中的《GD32F3开发基础教程——基于GD32F303ZET6》来学习,后者可使用本书学习。两本书在实验编排上有一定的相似性,旨在通过不同的语言来实现同样的功能。读者可以在对比中掌握两种语言的差异性和共性,从而夯实基础,加深对微控制器底层原理的理解。
GD32F303ZET6微控制器采用了最新Cortex-M4内核,同主频下的代码执行效率相比市场同类Cortex-M4产品提高10%~20%,相比Cortex-M3产品提高30%。Cortex-M4内核基于ARM-v7架构。ARM架构为32位精简指令集(RISC)中央处理器架构,广泛应用于嵌入式系统设计中,因此,学习ARM架构是嵌入式系统设计的重要环节之一。
人才是推动行业发展的核心力量,而常年来硬件领域人才缺口大,企业难以招聘到合适的人才。一方面,硬件学习门槛高、周期长;另一方面,难有完善的培养体系可以系统性地建立初学者的硬件知识体系,提升硬件水平。本书希望通过一系列实验,手把手带着读者一起学架构、学指令、学调试,丰富读者知识体系,提高其对嵌入式系统设计的兴趣,并在硬件开发道路上持之以恒、深入钻研,成为国家社会需要的人才。
本书各章内容安排如下:
第1、2章简要介绍本书所用开发平台和工具,以及开发工具的安装与配置,然后介绍微机工作原理和GD32F30x系列微控制器。
第3~8章以仿真实验为主线,对Keil软件的使用,工程的建立、编译和程序下载,以及汇编语言的基础知识进行介绍。
第9~17章介绍GPIO、外部中断、定时器、SysTick、RCU、串口通信、ADC和DAC的原理及相关寄存器,并通过实验进行验证。
本书特点如下:
(1) 本书内容对有一定微控制器基础的读者来说较为友好,建议先学习“卓越工程师培养系列”教材中的《GD32F3开发基础教程——基于GD32F303ZET6》,再学习本书。
(2) 本书适合具有ARM基础的嵌入式工程师学习,也可以作为高等院校电子类专业的教材。
(3) 本书注重理论与实践相结合,对于高深晦涩的原理涉及较少,大多采用通俗易懂的语言深入浅出地进行介绍。原理介绍之后再进行实验,将理论运用到实际工程中,以巩固所学知识。
(4) 书中的所有例程按照统一的工程架构设计,每个子模块都按照统一标准设计,以方便读者后续使用书中所学知识进一步开发,或将其应用于项目当中。
(5) 本书配有丰富的资料包,包含例程、软件包、教学课件、教学视频、参考资料等。这些资料会持续更新,读者可通过扫描二维码获取。
本书由张沛昌、郭文波任主编,唐浒、董磊任副主编,其中,张沛昌和郭文波共同策划编写思路,指导并参与编写,最后对全书进行了统稿。本书配套的GD32F3苹果派开发板和例程由深圳市乐育科技有限公司开发。兆易创新科技集团股份有限公司的金光一、徐杰、王霄同样为本书的编写提供了充分的技术支持。清华大学出版社编辑为本书的出版做了大量的编辑和审校工作。在此一并致以衷心的感谢!
由于编者水平有限,书中难免有不足之处,恳请读者批评指正。读者反馈问题、获取相关资料或遇实验平台技术问题,可发邮件至邮箱:[email protected]。
编 者
2023年5月
第1章 GD32开发平台和工具 1
1.1 为什么选择GD32 2
1.2 GD32F3系列芯片介绍 2
1.3 GD32F3苹果派开发板电路
简介 4
1.3.1 通信-下载模块电路 5
1.3.2 GD-Link调试-下载模块电路 6
1.3.3 电源转换电路 6
1.4 GD32F3苹果派开发板可以
开展的部分实验 7
1.5 GD32微控制器开发工具的
安装与配置 7
1.5.1 安装Keil 5.30 8
1.5.2 设置Keil 5.30 11
本章任务 13
本章习题 13
第2章 微机原理与简介 14
2.1 微机工作原理 15
2.1.1 微机的基本组成 15
2.1.2 汇编语言与汇编过程简介 16
2.1.3 微机工作过程 17
2.2 GD32F30x系列微控制器
概述 18
2.2.1 GD32F30x系统架构 19
2.2.2 存储器映射 20
本章任务 23
本章习题 23
第3章 基准工程实验 24
3.1 实验内容 25
3.2 实验原理 25
3.2.1 Keil编辑和编译及程序下载
过程 25
3.2.2 Keil工程选项 26
3.2.3 GD32工程模块名称及说明 36
3.2.4 相关参考资料 36
3.3 实验步骤与代码解析 37
本章任务 51
本章习题 51
第4章 汇编语言初探 52
4.1 实验内容 53
4.2 实验原理 53
4.2.1 文件初解 53
4.2.2 工作寄存器 55
4.2.3 汇编语言基本语法 57
4.2.4 数制及转换 60
4.2.5 启动文件 61
4.2.6 .map文件 63
4.2.7 仿真 66
4.3 实验步骤与代码解析 69
本章任务 72
本章习题 72
第5章 数据处理实验 73
5.1 实验内容 74
5.2 实验原理 74
5.2.1 数据传送指令 74
5.2.2 基本运算指令 75
5.2.3 逻辑运算指令 77
5.2.4 移位运算指令 77
5.2.5 机器码 80
5.2.6 本章指令汇总 84
5.3 实验步骤与代码解析 85
本章任务 90
本章习题 91
第6章 程序流控制实验 92
6.1 实验内容 93
6.2 实验原理 93
6.2.1 程序流控制 93
6.2.2 比较与测试指令 93
6.2.3 跳转指令 94
6.2.4 条件后缀 95
6.2.5 本章指令汇总 97
6.3 实验步骤与代码解析 97
本章任务 101
本章习题 101
第7章 存储器访问实验 102
7.1 实验内容 103
7.2 实验原理 103
7.2.1 存储器 103
7.2.2 存储器访问指令 104
7.2.3 存储器空间 108
7.2.4 存储器空间使用 109
7.2.5 本章指令汇总 109
7.3 实验步骤与代码解析 109
本章任务 114
本章习题 114
第8章 函数封装实验 115
8.1 实验内容 116
8.2 实验原理 116
8.2.1 函数介绍 116
8.2.2 堆区和栈区 117
8.2.3 栈区设置 117
8.2.4 栈操作指令 118
8.2.5 LDR伪指令 118
8.3 实验步骤与代码解析 119
本章任务 122
本章习题 122
第9章 GPIO与流水灯实验 123
9.1 实验内容 124
9.2 实验原理 124
9.2.1 LED电路原理图 124
9.2.2 GPIO功能框图 124
9.2.3 GPIO部分寄存器 126
9.2.4 RCU部分寄存器 130
9.2.5 程序架构 131
9.3 实验步骤与代码解析 133
本章任务 139
本章习题 139
第10章 GPIO与独立按键输入
实验 140
10.1 实验内容 141
10.2 实验原理 141
10.2.1 独立按键电路原理图 141
10.2.2 GPIO功能框图 142
10.2.3 GPIO部分寄存器 143
10.2.4 按键去抖原理 143
10.2.5 程序架构 144
10.3 实验步骤与代码解析 145
本章任务 158
本章习题 159
第11章 外部中断实验 160
11.1 实验内容 161
11.2 实验原理 161
11.2.1 EXTI功能框图 161
11.2.2 EXTI部分寄存器 163
11.2.3 AFIO部分寄存器 165
11.2.4 异常和中断 167
11.2.5 NVIC中断控制器 172
11.2.6 NVIC部分寄存器 173
11.2.7 程序架构 176
11.3 实验步骤与代码解析 178
本章任务 185
本章习题 185
第12章 定时器实验 186
12.1 实验内容 187
12.2 实验原理 187
12.2.1 通用定时器L0结构
框图 187
12.2.2 通用定时器部分寄存器 190
12.2.3 RCU部分寄存器 192
12.2.4 程序架构 193
12.3 实验步骤与代码解析 194
本章任务 203
本章习题 203
第13章 SysTick实验 204
13.1 实验内容 205
13.2 实验原理 205
13.2.1 SysTick功能框图 205
13.2.2 SysTick实验流程图
分析 206
13.2.3 SysTick部分寄存器 207
13.2.4 程序架构 208
13.3 实验步骤与代码解析 209
本章任务 215
本章习题 215
第14章 RCU实验 216
14.1 实验内容 217
14.2 实验原理 217
14.2.1 RCU功能框图 217
14.2.2 RCU部分寄存器 220
14.2.3 FMC部分寄存器 225
14.2.4 程序架构 225
14.3 实验步骤与代码解析 226
本章任务 232
本章习题 232
第15章 串口通信实验 233
15.1 实验内容 234
15.2 实验原理 234
15.2.1 串口通信协议 234
15.2.2 串口电路原理图 236
15.2.3 串口功能框图 237
15.2.4 串口部分寄存器 240
15.2.5 串口模块驱动设计 244
15.2.6 程序架构 246
15.3 实验步骤与代码解析 247
本章任务 260
本章习题 261
第16章 ADC实验 262
16.1 实验内容 263
16.2 实验原理 263
16.2.1 ADC功能框图 263
16.2.2 ADC时钟及其转换
时间 265
16.2.3 ADC部分寄存器 265
16.2.4 程序架构 271
16.3 实验步骤与代码解析 272
本章任务 283
本章习题 283
第17章 DAC实验 284
17.1 实验内容 285
17.2 实验原理 285
17.2.1 DAC功能框图 285
17.2.2 DAC部分寄存器 288
17.2.3 程序架构 290
17.3 实验步骤与代码解析 292
本章任务 298
本章习题 298
参考文献 299