新書推薦:
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:NT$
296.0
《
罗马政治观念中的自由
》
售價:NT$
230.0
《
中国王朝内争实录:宠位厮杀
》
售價:NT$
281.0
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:NT$
203.0
《
未来特工局
》
售價:NT$
254.0
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:NT$
250.0
《
英国简史(刘金源教授作品)
》
售價:NT$
449.0
《
便宜货:廉价商品与美国消费社会的形成
》
售價:NT$
352.0
|
內容簡介: |
与电子相关的专业,如电子工程、自动化、光电、机电、机器人、生物医学工程、医疗器械工程、康复工程等,都需要学习微控制器(微控制器也常常被称作单片机)。本书基于STM32核心板,以16个实验为主线。这些实验的编码规范均参见本书附录C《C语言软件设计规范(LY-STD0012019)》。另外,所有的实验均基于模块化设计。这样读者就可以轻松地将这些模块应用在不同的项目和产品中。本书配套的资料包既包括STM32核心板原理图、例程、软件包,又包括软件和硬件资料,还包括配套的PPT讲义、视频等,且持续更新,*下载链接可通过微信公众号卓越工程师培养系列获取。本书内容翔实,图文并茂,思路清晰,凡是涉及的知识点均会详细讲解,未涉及的知识点尽可能不予讲解。这样既能减轻读者的学习负担,又能促使读者快速掌握微控制器系统设计的各项必备技能。
|
關於作者: |
2011年7月-至今 深圳大学医学部生物医学工程学院从事生物医学工程专业实践类教学工作。编写出版《电路设计与制作实用教程(PADS版)》《电路设计与制作实用教程(Altium Designer版)》《电路设计与制作实用教程基于立创EDA》等。
|
目錄:
|
第1章 STM32开发平台和工具 1
1.1 STM32芯片介绍 1
1.2 STM32核心板电路简介 2
1.3 STM32开发工具的安装与配置 8
1.3.1 安装Keil 5.20 8
1.3.2 配置Keil 5.20 10
1.4 STM32核心板可以开展的部分实验 10
1.5 本书配套的资料包 11
本章任务 11
本章习题 12
第2章 实验1F103基准工程 13
2.1 实验内容 13
2.2 实验原理 13
2.2.1 寄存器与固件库 13
2.2.2 Keil编辑和编译及STM32下载过程 17
2.2.3 STM32工程模块名称及说明 18
2.2.4 STM32参考资料 19
2.3 实验步骤 20
本章任务 32
本章习题 33
第3章 实验2串口电子钟 34
3.1 实验内容 34
3.2 实验原理 34
3.2.1 RunClock模块函数 34
3.2.2 函数调用框架 36
3.2.3 Proc2msTask与Proc1SecTask 37
3.3 实验步骤 38
本章任务 42
本章习题 42
第4章 实验3GPIO与流水灯 43
4.1 实验内容 43
4.2 实验原理 43
4.2.1 LED电路原理图 43
4.2.2 STM32系统架构与存储器组织 43
4.2.3 GPIO功能框图 46
4.2.4 GPIO部分寄存器 48
4.2.5 GPIO部分固件库函数 53
4.2.6 RCC部分寄存器 56
4.2.7 RCC部分固件库函数 57
4.3 实验步骤 58
本章任务 63
本章习题 64
第5章 实验4GPIO与独立按键输入 65
5.1 实验内容 65
5.2 实验原理 65
5.2.1 独立按键电路原理图 65
5.2.2 GPIO功能框图 65
5.2.3 GPIO部分寄存器 66
5.2.4 GPIO部分固件库函数 67
5.2.5 按键去抖原理 68
5.3 实验步骤 69
本章任务 76
本章习题 77
第6章 实验5串口通信 78
6.1 实验内容 78
6.2 实验原理 78
6.2.1 UART电路原理图 78
6.2.2 UART通信协议 79
6.2.3 UART功能框图 80
6.2.4 UART部分寄存器 84
6.2.5 UART部分固件库函数 88
6.2.6 STM32异常和中断 94
6.2.7 NVIC中断控制器 98
6.2.8 NVIC部分寄存器 98
6.2.9 NVIC部分固件库函数 102
6.2.10 UART1模块驱动设计 105
6.3 实验步骤 110
本章任务 122
本章习题 122
第7章 实验6定时器 123
7.1 实验内容 123
7.2 实验原理 123
7.2.1 通用定时器功能框图 123
7.2.2 通用定时器部分寄存器 127
7.2.3 通用定时器部分固件库函数 131
7.2.4 RCC部分寄存器 133
7.2.5 RCC部分固件库函数 134
7.3 实验步骤 134
本章任务 141
本章习题 141
第8章 实验7SysTick 142
8.1 实验内容 142
8.2 实验原理 142
8.2.1 SysTick功能框图 142
8.2.2 SysTick实验流程图分析 143
8.2.3 SysTick部分寄存器 144
8.2.4 SysTick部分固件库函数 146
8.3 实验步骤 147
本章任务 151
本章习题 151
第9章 实验8RCC 152
9.1 实验内容 152
9.2 实验原理 152
9.2.1 RCC功能框图 152
9.2.2 RCC部分寄存器 155
9.2.3 RCC部分固件库函数 158
9.2.4 Flash部分寄存器 163
9.2.5 Flash部分固件库函数 164
9.3 实验步骤 165
本章任务 169
本章习题 169
第10章 实验9外部中断 170
10.1 实验内容 170
10.2 实验原理 170
10.2.1 EXTI功能框图 170
10.2.2 EXTI部分寄存器 172
10.2.3 EXTI部分固件库函数 175
10.2.4 AFIO部分寄存器 177
10.2.5 AFIO部分固件库函数 180
10.3 实验步骤 181
本章任务 186
本章习题 187
第11章 实验10OLED显示 188
11.1 实验内容 188
11.2 实验原理 188
11.2.1 OLED显示模块 188
11.2.2 SSD1306的显存 189
11.2.3 SSD1306常用命令 191
11.2.4 字模选项 191
11.2.5 ASCⅡ码表与取模工具 192
11.2.6 STM32的GRAM与SSD1306的GRAM 193
11.2.7 OLED显示模块显示流程 194
11.3 实验步骤 194
本章任务 208
本章习题 208
第12章 实验11独立看门狗 209
12.1 实验内容 209
12.2 实验原理 209
12.2.1 独立看门狗功能框图 209
12.2.2 独立看门狗最小喂狗时间 210
12.2.3 独立看门狗实验流程图分析 211
12.2.4 独立看门狗部分寄存器 211
12.2.5 独立看门狗部分固件库函数 214
12.3 实验步骤 216
本章任务 221
本章习题 221
第13章 实验12读写内部Flash 222
13.1 实验内容 222
13.2 实验原理 222
13.2.1 STM32的内部Flash和内部SRAM 222
13.2.2 STM32的内部Flash简介 223
13.2.3 STM32启动模式 224
13.2.4 Flash编程过程 224
13.2.5 Flash页擦除过程 225
13.2.6 Flash部分寄存器 226
13.2.7 Flash部分固件库函数 231
13.3 实验步骤 232
本章任务 241
本章习题 241
第14章 实验13PWM输出 242
14.1 实验内容 242
14.2 实验原理 242
14.2.1 PWM输出实验流程图分析 242
14.2.2 通用定时器部分寄存器 244
14.2.3 通用定时器部分固件库函数 246
14.2.4 AFIO部分寄存器 247
14.2.5 AFIO部分固件库函数 248
14.3 实验步骤 249
本章任务 255
本章习题 255
第15章 实验14输入捕获 256
15.1 实验内容 256
15.2 实验原理 256
15.2.1 输入捕获实验流程图分析 256
15.2.2 通用定时器部分寄存器 258
15.2.3 通用定时器部分固件库函数 260
15.3 实验步骤 262
本章任务 269
本章习题 269
第16章 实验15DAC 270
16.1 实验内容 270
16.2 实验原理 270
16.2.1 DAC功能框图 270
16.2.2 DMA功能框图 274
16.2.3 DAC实验逻辑图分析 277
16.2.4 PCT通信协议 277
16.2.5 PCT通信协议应用 284
16.2.6 DAC部分寄存器 286
16.2.7 DAC部分固件库函数 289
16.2.8 DMA部分寄存器 292
16.2.9 DMA部分固件库函数 296
16.3 实验步骤 300
本章任务 313
本章习题 314
第17章 实验16ADC 315
17.1 实验内容 315
17.2 实验原理 315
17.2.1 ADC功能框图 315
17.2.2 ADC实验逻辑框图分析 318
17.2.3 ADC实验中的ADC缓冲区 319
17.2.4 ADC部分寄存器 319
17.2.5 ADC部分固件库函数 324
17.3 实验步骤 330
本章任务 341
本章习题 341
附录A STM32核心板原理图 342
附录B STM32F103RCT6引脚定义 343
附录C C语言软件设计规范(LY-STD0012019) 346
参考文献 354
|
內容試閱:
|
本书是一本讲解STM32F1系列微控制器的书籍。无论电子工程、自动化、光电、机电、机器人专业,还是生物医学工程、医疗器械工程、康复工程专业,都要学习微控制器。然而,微控制器涉及面非常广,除了要掌握各种电路知识、C语言语法、计算机体系架构,还要熟悉微控制器的寄存器、固件库及各种集成开发环境、下载工具和串口调试工具。要想成为一名优秀的微控制器系统设计工程师,还需要进一步掌握软硬件联合调试技能,具备模块化设计思想,并且能从宏观角度进行系统架构设计,能够灵活地将各种技术规范融入具体的项目中。
天津大学李刚教授有句名言,勇于实践 深入思考=真才实学,而当今的高等院校工科生,最缺乏的就是勇于实践,没有大量的实践,就很难对某一个问题进行深入剖析和思考,当然,也就谈不上真才实学。随着时代的进步和发展,技术更新速度也越来越快,很多陈旧的技术在不断被淘汰。然而,很多高校依然是参照20世纪七八十年代的课程体系,或在此基础上增加一些新课程。这样,就出现了一个严重的问题:学生需要修读的学分越来越多,而每门课程的课时越来越少。然而,卓越工程师的培养必须配以高强度的实训。
本书可以作为实训手册使用。16个实验都包括实验内容、实验原理、实验步骤、本章任务和本章习题5个环节。这些实验相对而言比较基础,而且每个实验都有详细的步骤和源代码,以确保读者能够顺利完成。另外,本书还对实验的内容、设计思路等进行了详细讲解,以保证读者能够深入理解这些实验涉及的知识点。每个实验的最后都有一个任务。这些任务是本章实验的延伸和拓展。因此,能够顺利完成并理解该章实验的读者,再加上深入思考,都能够完成这些任务。本章任务之后是本章习题,由若干小习题构成,用于检查读者是否真正掌握了本章的知识。
现在的微控制器功能比以往强大很多,想要掌握其知识点,就必须花费大量的时间和精力。比如,学习某一款STM32微控制器,至少要阅读三本手册,分别是ARM公司的《ARM Cortex-M3权威指南》、ST公司的《STM32中文参考手册》和《STM32固件库使用手册》。这些手册加起来一千多页。另外,初学者还要花费大量的时间和精力熟悉STM32的集成开发环境、程序下载工具、串口助手工具等。为了减轻查找资料和熟悉工具的负担,促使读者将更多的精力聚集在实践环节,争取快速入门,本书将每个实验涉及的《STM32中文参考手册》《ARM Cortex-M3权威指南》和《STM32固件库使用手册》上的知识点统一汇总在实验原理一节,STM32集成开发环境、程序下载工具、串口助手工具等的使用也穿插于各个章节中。这样,读者就可以通过本书和一套STM32核心板,结合书中的实验内容、实验原理、实验步骤、本章任务和本章习题,按照勇于实践 深入思考的思想,轻松踏上学习STM32之路,在实践过程中不知不觉掌握各种知识和技能。
简单总结一下本书的特点:
(1)微控制器系统设计以一块STM32核心板作为实践载体。微控制器之所以选取STM32F103 RCT6,主要考虑到STM32是目前市面上使用最为广泛的微控制器。而且该系列的微控制器具有功耗低、外设多、基于库开发、配套资料多、开发板种类多等优势。
(2)书中16个实验涉及的所有知识点均详细讲解,未涉及的知识点几乎不予讲解。这样,初学者就可以快速掌握微控制器系统设计的绝大多数基本知识点。
(3)各种规范贯穿于整个微控制器系统设计的过程中,如Keil集成开发环境参数设置、工程和文件命名规范、版本规范、软件设计规范等。
(4)所有实验严格按照统一的工程架构设计,每个子模块按照统一的标准设计。
(5)配有完整的资料包,既包括STM32核心板原理图、例程、软件包,也包括软件和硬件资料,还包括配套的PPT讲义、视频等。这些资料会持续更新,下载链接通过微信公众号卓越工程师培养系列获取。
读者在使用本书开展实验时,建议先通过实验1和实验2快速熟悉整个开发流程,而对于实验3~6,务必花费大量的时间和精力,重点学习外设架构、寄存器、固件库函数、驱动设计和应用层设计等,并认真总结这4章的经验,最后,将这4章总结的经验灵活运用在后面的10个实验中,因为实验3~6基本涵盖了最后10个实验80%的知识点。学习过程中要学会抓重点,比如,实验3~6建议花费40%的时间和精力,而剩余的12个实验建议花费60%的时间和精力,切勿平均分配时间,而且学习过程中要不断总结和归纳。
另外,本书中的程序都严格按照《C语言软件设计规范(LY-STD0012019)》编写。设计规范要求每个函数的实现必须有清晰的函数模块信息,包括函数名称、函数功能、输入参数、输出参数、返回值、创建日期和注意事项。由于本书篇幅有限,书中实验3~16中每个函数的实现均省略了函数模块信息,但是,读者在编写程序时,建议完善每个函数的模块信息,《函数实现及其模块信息》(位于本书配套资料包的08.软件资料文件夹)罗列了所有函数的实现及其模块信息,供读者开展实验时参考。
本书的编写得到了深圳市乐育科技有限公司的大力支持;深圳大学的覃进宇、刘宇林、陈旭萍和黄荣祯,以及杨钦铸、陈焕鑫、曹康养、王东琪和黄楷镔在教材编写、例程优化和文本校对中做了大量的工作;本书的出版得到了电子工业出版社的鼎力支持,张小乐编辑为本书的顺利出版做了大量工作,一并向他们表示衷心的感谢。本书获深圳大学教材出版资助。
由于作者水平有限,书中难免有错误和不足之处,敬请读者不吝赐教。
编 者
2019.10
|
|