基于STM32的嵌入式系统设计
书 号:9787113205447
丛 书 名:普通高等教育“十二五”规划教材
作 者:刘一
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:43元
-
内容简介
本书介绍了以ARMCortex-M3为内核的STM32F103增强型微控制器的特点,深入讲解其硬件和软件设计方法。STM32最小系统设计、向量中断控制器、GPIO应用、STM32外部中断、通用定时器、USB通信等内容;采用了详细的实例深入介绍了ADC应用、SPI通信、通用定时器、USB通信。最后,采用了四个综合设计实例,详细讲解了采用STM32F103控制器的下载器开发、音乐播放器、录音系统开发和语音识别系统开发。 -
前言
STM32系列微控制器是近年来迅速兴起的基于ARM Cortex-M3内核的高端32位
微控制器的代表。其中,STM32F103微控制器,工作频率为72 MHz,内置高速存储
器、丰富的增强型I/O端口和连接到两条APB总线的外设。优秀的性能、丰富的外设
以及低廉的价格等优点,使其在工业控制、消费电子、汽车电子、安防监控等众多领
域得到了广泛应用。本书就是基于STM32F103微控制器介绍嵌入式系统开发的。
对于初学者而言,特别是只有少数8 位单片机开发经验的人来说,跨入STM32
这扇大门,开发方式发生了较大的改变。这里的“改变”包括:开发环境的改变、开
发工具的改变、工程结构的改变和调试手段的改变。学习STM32时,建议按如下几
步进行:第一步,收集阅读资料,资料包括STM32书籍、官方的芯片文档和库函数
文档。但是,不管看书籍还是文档,不要奢求一下都能理解、记住,只需理解基本内
容,对复杂的内容有一个初步的印象,以后碰到问题的时候,知道需要哪方面的知识,
然后查阅资料或上网找答案。第二步,选购一个例程比较丰富的开发板,不用买最贵
的,只要有比较丰富的配套例程即可。按照例程,把开发板上的相关测试、操作步骤,
都动手做一遍,以便熟悉开发软件的使用。先看例程的效果,再去读例程代码,理解
为何这样写,不理解的地方查书、查资料。然后,参照资料开始改动例程,编译下载,
查看效果是否达到自己的设想。STM32的外设模块特别多,学习要有先后顺序与侧重
点。GPIO、USART、TIMER、NVIC和ADC是最常用的功能模块,要非常熟悉。其他
的如USB、DMA等较难理解的模块可以在以后用到的时候再深入学习。
关于是学习基于寄存器编程还是基于库函数编程这个问题,笔者的看法是先学习
基于库函数的编程更容易。可能有很多同学停留在对8位单片机的认识上,认为代码
里看不到对寄存器的直接设置,很不安心。这个观念要转变,其实大家当初在学习C
语言的时候,哪里看到寄存器了?我们要理解掌握C语言的精髓,包括结构体、枚举
和函数调用等,这些是官方库函数的基础,其 中定义了大量的结构体数据类型和枚举
数据类型,提供了大量具有某个功能的函数。我们要知道这个函数的功能,如何调用,
参数是什么,返回值是什么。
前 言
FOREWORD
基于以上认识,我们编写本书主要是给大家提供一本入门的参考资料。本书提供
了大部分功能模块的寄存器说明、主要的库函数说明和使用此功能模块的配置步骤;
每个模块都提供了一个基于库函数的简单实例和一个基于寄存器的实例。这些实例都
是两个复杂应用——基于STM32的智能充电器和基于STM32的智能家居的部分功能。
最后一章提供了几个复杂的应用实例。我们的设想是:通过对配置步骤和实例的学习,
使读者快速掌握使用库函数编写代码的方法;通过查阅本书能够找到大部分寄存器和
库函数的使用说明。本书的读者需要具有一定的C语言、单片机基础。
本书由刘一(广东技术师范学院)任主编,范君闯、白娜(哈尔滨石油学院)任
副主编。具体编写分工如下:刘一编写第5章~第8章、第10章~第14章;范君闯
编写第1章~第3章;白娜编写第4章和第9章。
本书适合作为普通高等院校嵌入式系统设计课程的教材,也可作为高校师生课程
设计、毕业设计以及电子设计竞赛的培训和指导教材,还可作为嵌入式开发人员的参
考书。
由于时间仓促,编者水平有限,书中疏漏与不妥之处在所难免,恳请专家和读者
批评指正。
编 者
2015年4月 -
目录
第1章ARM Cortex-M3内核结构......... 1
1.1ARM Cortex-M3 内核简介........... 1
1.2处理器的组件............................. 1
1.3存储器系统 ................................ 3
第2章 开发环境与最小系统................. 5
2.1开发环境 .................................... 5
2.1.1新建工程和添加源代码... 5
2.1.2设置工程......................... 6
2.1.3编译 .............................. 12
2.1.4调试 .............................. 12
2.2最小系统与启动选择................ 15
第3章STM32 固件库...................... 16
3.1STM32 固件库的定义规则 ........ 16
3.1.1固件库命名规则............ 16
3.1.2代码标准....................... 17
3.2STM32 库的层次结构................ 20
3.2.1固件包........................... 20
3.2.2固件库文件 ................... 21
3.3STM32 库的使用 ....................... 22
3.4位带操作 .................................. 25
第4章 时钟控制系统......................... 30
4.1时钟源...................................... 30
4.2时钟控制系统 RCC 寄存器 ....... 31
4.3系统时钟配置寄存器例程 ........ 42
4.4主要 RCC 库函数介绍 .............. 44
第5章 向量中断控制器..................... 51
5.1处理器模式 .............................. 51
5.2异常.......................................... 52
5.2.1异常类型....................... 52
5.2.2优先级........................... 53
5.2.3中断向量表 ...................55
5.3NVIC 寄存器 .............................57
5.4NVIC 库函数 .............................58
第6章 系统定时器............................ 64
6.1SysTick 寄存器..........................64
6.2SysTick 寄存器开发实例...........65
6.3SysTick 库函数..........................66
6.4SysTick 库函数开发实例...........69
第7章 通用、复用及重映射I/O ......... 70
7.1通用、复用和重映射 I/O 的
关系 .........................................71
7.2通用 I/O 寄存器 ........................71
7.2.1各种输入/输出模式 .......71
7.2.2相关寄存器 ...................73
7.3通用 I/O 寄存器开发实例 .........76
7.3.1实例 1——流水灯实验 ..76
7.3.2实例 2——按键实验 ......77
7.3.3实例 3——LCD1602 的
使用...............................78
7.4GPIO 库函数 .............................85
7.5GPIOx 端口编程步骤 ................89
7.5.1配置 GPIOx 端口............89
7.5.2操作 GPIOx 端口............89
7.6GPIO 应用示例 .........................90
第8章 外部中断输入......................... 93
8.1外部中断寄存器描述 ................93
8.2外部中断寄存器开发实例.........96
8.3EXTI 相关库函数 .................... 101
8.4外部中断引脚设置.................. 102
8.5外部中断库函数应用示例....... 103
目 录
CONTENTS
2 基于STM32的嵌入式系统设计
第9章USART................................ 107
9.1USART 概述............................ 107
9.1.1发送器......................... 108
9.1.2接收器......................... 109
9.1.3分数波特率发生器 ...... 111
9.1.4USART 中断请求......... 112
9.1.5USART 模式配置......... 113
9.2USART 寄存器........................ 113
9.3USART 寄存器开发实例 ......... 119
9.4USART 库函数........................ 121
9.5USARTx 串口编程步骤 ........... 127
9.6USART 应用示例 .................... 129
第10章SPI.................................... 131
10.1STM32 SPI............................. 131
10.1.1NSS 引脚管理 ............ 133
10.1.2主从模式选择............ 133
10.1.3数据发送和接收 ........ 134
10.1.4单工通信 ................... 134
10.1.5关闭 SPI .................... 134
10.1.6SPI 中断 .................... 135
10.2SPI 寄存器 ............................ 135
10.3SPI 寄存器开发实例 ............. 140
10.3.1SPI 基本功能 ............. 140
10.3.2nRF24L01 无线通信
模块使用 ................... 143
10.4SPI 库函数解读..................... 154
10.5SPI 库函数开发实例 ............. 160
第11章 通用定时器........................ 165
11.1通用定时器概述 ................... 165
11.2通用定时器基本功能............ 165
11.2.1时基单元 ................... 166
11.2.2时钟选择 ................... 167
11.2.3计数器模式 ............... 168
11.2.4PWM 模式.................. 171
11.3通用定时器寄存器................ 173
11.4TIM 库函数解读 .................... 186
11.5通用定时器应用示例 ............ 197
第12章ADC .................................. 203
12.1ADC 概述 .............................. 203
12.2转换模式............................... 205
12.3双 ADC 模式 ......................... 207
12.4ADC 寄存器 .......................... 210
12.5ADC 寄存器开发实例............ 218
12.6ADC 库函数 .......................... 221
12.7ADC 应用示例....................... 228
第13章 看门狗............................... 231
13.1独立看门狗 ........................... 231
13.1.1独立看门狗特性 ........ 231
13.1.2寄存器访问时序 ........ 231
13.1.3预分频和重装值 ........ 232
13.2IWDG 寄存器 ........................ 232
13.3窗口看门狗 ........................... 234
13.3.1窗口看门狗特性 ........ 234
13.3.2配置窗口看门狗 ........ 234
13.4WWDG 寄存器 ...................... 235
13.5WWDG 库函数 ...................... 236
13.5.1WWDG 寄存器结构.... 236
13.5.2WWDG 库函数 ........... 236
13.6看门狗应用示例.................... 237
第14章 综合实例——基于STM32的
智能家居系统..................... 241
14.1以太网数据帧结构................ 241
14.2驱动程序介绍 ....................... 242
14.3 嵌入式以太网智能家居
硬件设计 ............................... 246
14.4嵌入式以太网串口服务器的
软件设计 ............................... 248
参考文献........................................... 261 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1刘一 本科 讲师光纤通讯 工作单位广东技术师范学院 邮政编码 电话 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 刘一, 广东技术师范学院电子与信息学院讲师。主要从事物联网及医疗电子仪器等方向的科研与教学工作。多次指导学生参加全国电子设计大赛与挑战杯,曾指导学生获得挑战杯广东省特等奖和一等奖,挑战杯全国三等奖。获得医疗电子仪器方面的实用新型专利4项。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐