嵌入式系统基础与实践:基于ARM Cortex-M3内核的STM32微控制器/刘黎明
- ISBN:9787121390890
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:396
- 出版时间:2020-09-01
- 条形码:9787121390890 ; 978-7-121-39089-0
本书特色
本书以嵌入式系统的基本概念和原理为主线,针对基于ARM Cortex-M3内核的STM32微控制器,依循模块化设计思想,针对STM32的五大外设模块(GPIO、EXTI、USART、DMA和ADC),分别采用基于标准外设库和基于HAL库的设计方法进行了详细阐述,并从初学者的角度出发,详细讲解了从模块到项目的开发过程,*后基于μC/OS-Ⅲ嵌入式操作系统讲述了嵌入式操作系统基本原理及开发思路。 本书可以作为高等院校电子信息工程、自动化、通信工程、电气自动化等专业的嵌入式系统基础教材或参考书,也可作为嵌入式系统应用开发人员的参考资料。
内容简介
本书全面介绍了嵌入式系统开发与应用技术,以基于ARM Cortex-M3内核的STM32F103系列微控制器为硬件平台,系统讲述了嵌入式系统开发的基本知识、基本方法以及以STM32F103系列微控制器为核心的嵌入式系统软、硬件开发过程。主要内容包括:嵌入式系统开发基础知识;ARM技术概述;基于ARM的嵌入式系统应用程序设计;基于STM32F103的嵌入式系统应用开发实例;uC/OS-III操作系统及应用开发。
目录
目 录
第1章 嵌入式系统概述 1
1.1 信息技术的发展 1
1.1.1 计算机的诞生 1
1.1.2 通用信息处理 2
1.1.3 人工智能 3
1.2 嵌入式系统 5
1.2.1 嵌入式系统案例分析 6
1.2.2 嵌入式系统概念 9
1.2.3 嵌入式系统与物联网 10
1.3 嵌入式初学者杂谈 11
1.3.1 MCU、MPU、ARM、FPGA、DSP概念 11
1.3.2 MCU开发与ARM-Linux开发的区别 15
1.3.3 开源硬件Arduino和树莓派 16
1.4 嵌入式系统开发流程 17
1.4.1 系统需求分析 17
1.4.2 系统总体设计 18
1.4.3 系统软/硬件设计 20
1.4.4 系统软/硬件测试 21
习题1 21
第2章 ARM Cortex-M3内核与STM32微控制器 22
2.1 嵌入式系统基础知识 22
2.1.1 冯??诺依曼结构与哈佛结构 22
2.1.2 ARM存储模式 24
2.1.3 CISC和RISC 25
2.1.4 流水线技术 27
2.2 ARM 29
2.2.1 ARM介绍 29
2.2.2 ARM体系结构 30
2.3 ARM Cortex-M3内核 33
2.3.1 内核架构 34
2.3.2 寄存器 37
2.3.3 存储结构 39
2.3.4 中断与异常(NVIC) 40
2.4 STM32微控制器结构 42
2.4.1 STM32系统结构 42
2.4.2 STM32总线结构 43
2.4.3 STM32存储结构 44
2.4.4 STM32中断 46
2.4.5 STM32时钟系统 48
习题2 49
第3章 STM32微控制器及开发环境搭建 50
3.1 STM32介绍 50
3.2 STM32微控制器开发模式 55
3.2.1 寄存器开发模式 56
3.2.2 标准外设库开发模式 57
3.2.3 HAL库开发模式 58
3.3 开发平台的搭建 60
3.3.1 嵌入式开发环境 60
3.3.2 集成开发环境Keil 62
3.3.3 下载和安装Packs包 63
3.4 基于标准外设库开发平台搭建 66
3.4.1 STM32标准外设库文件结构 66
3.4.2 基于标准外设库新建工程模板 73
3.5 基于HAL库开发平台的搭建 87
3.5.1 Java运行环境的安装 87
3.5.2 安装STM32CubeMX软件 87
3.5.3 STM32CubeF1库文件结构 89
3.5.4 STM32CubeMX生成的工程架构解析 90
习题3 96
第4章 STM32*小系统与嵌入式C语言 98
4.1 STM32*小系统 98
4.1.1 电源电路 98
4.1.2 时钟电路 100
4.1.3 复位电路 101
4.1.4 调试和下载电路 102
4.2 嵌入式C语言 104
4.2.1 STM32的数据类型 105
4.2.2 const关键字 108
4.2.3 static关键字 108
4.2.4 volatile关键字 110
4.2.5 extern关键字 110
4.2.6 struct结构体 112
4.2.7 enum 113
4.2.8 typedef 114
4.2.9 #define 115
4.2.10 #ifdef、#ifndef、#else、#if条件编译 117
4.2.11 指针 119
4.2.12 回调函数 125
4.3 HAL库文件源代码分析 126
4.3.1 stm32f1xx.h 126
4.3.2 stm32f103xe.h 131
4.3.3 stm32f1xx_hal.c和stm32f1xx_hal.h 135
4.3.4 stm32f1xx_hal_gpio.c和stm32f1xx_hal_gpio.h 138
习题4 140
第5章 通用输入/输出 141
5.1 GPIO概述 141
5.2 STM32的GPIO工作原理 142
5.2.1 STM32F103引脚图 143
5.2.2 GPIO内部结构 144
5.2.3 GPIO工作模式 145
5.2.4 GPIO输出速度 148
5.3 GPIO标准外设库接口函数及应用 148
5.3.1 GPIO标准外设库接口函数 148
5.3.2 GPIO标准外设库应用实例 151
5.3.3 基于标准外设库开发的一般流程 154
5.4 GPIO的HAL库接口函数及应用 156
5.4.1 GPIO的HAL库接口函数 156
5.4.2 GPIO的HAL库应用实例 161
5.4.3 基于HAL库开发的一般流程 175
5.5 编程思想之模块化编程 176
习题5 179
第6章 中断 180
6.1 中断的相关概念 180
6.1.1 什么是中断? 180
6.1.2 为什么使用中断? 181
6.1.3 中断处理流程 181
6.2 STM32中断和异常 183
6.2.1 STM32中断和异常向量表 183
6.2.2 STM32中断优先级 188
6.2.3 STM32中断服务程序 190
6.3 STM32外部中断EXTI 191
6.4 EXTI标准外设库接口函数及应用 194
6.4.1 EXTI标准外设库接口函数 194
6.4.2 EXTI标准外设库中断配置步骤 196
6.4.3 EXTI标准外设库应用实例 197
6.5 EXTI的HAL库接口函数及应用 201
6.5.1 EXTI的HAL库接口函数 201
6.5.2 EXTI的HAL库应用实例 202
习题6 208
第7章 串口通信 209
7.1 通信概述 209
7.2 异步串行通信 212
7.2.1 异步串行通信协议 212
7.2.2 异步串行通信接口 213
7.3 STM32的USART模块 215
7.3.1 USART内部结构 215
7.3.2 USART接口 218
7.3.3 USART编程模式 219
7.4 USART标准外设库接口函数及应用 220
7.4.1 USART标准外设库接口函数 220
7.4.2 USART串口应用编程步骤 225
7.4.3 USART标准外设库应用实例 226
7.5 USART的HAL库接口函数及应用 232
7.5.1 UART的HAL库接口函数 232
7.5.2 USART的HAL库应用实例 236
7.5.3 USART应用实例拓展 241
7.6 编程思想之自定义串口通信协议 243
习题7 246
第8章 DMA 247
8.1 DMA基础理论知识 247
8.2 STM32的DMA模块 248
8.2.1 STM32的DMA内部结构 248
8.2.2 DMA优先权 250
8.2.3 DMA中断请求 250
8.3 DMA标准外设库接口函数及应用 252
8.3.1 DMA标准外设库接口函数 252
8.3.2 DMA标准外设库的配置过程 254
8.3.3 DMA标准外设库函数的应用实例 255
8.4 DMA的HAL库接口函数及应用 259
8.4.1 DMA的HAL库接口函数 259
8.4.2 DMA的HAL库应用实例 261
习题8 266
第9章 定时器 267
9.1 STM32定时器 268
9.1.1 STM32通用定时器 269
9.1.2 STM32基本定时器 272
9.1.3 STM32高级定时器 273
9.2 定时器标准外设库接口函数及应用 273
9.2.1 定时器标准外设库接口函数 273
9.2.2 定时器标准外设库配置过程 275
9.2.3 定时器标准外设库应用实例 277
9.3 PWM 279
9.3.1 STM32定时器PWM的工作原理 280
9.3.2 PWM标准外设库输出配置过程 281
9.3.3 PWM标准外设库的应用实例 283
9.4 SysTick定时器 285
9.4.1 SysTick标准外设库函数 285
9.4.2 SysTick定时器的应用实例 287
9.5 定时器HAL库接口函数及应用 289
9.5.1 定时器HAL库接口函数 289
9.5.2 定时器HAL库应用实例 294
9.6 编程思想之状态机设计思想 300
习题9 303
第10章 ADC 304
10.1 ADC基础理论知识 304
10.1.1 A/D转换过程 304
10.1.2 A/D转换的主要技术参数 305
10.2 STM32的ADC 306
10.2.1 ADC的引脚 306
10.2.2 ADC通道选择 308
10.2.3 ADC中断和DMA请求 309
10.2.4 ADC转换时间 310
10.2.5 ADC数据对齐 310
10.2.6 ADC的转换模式 311
10.2.7 ADC校准 311
10.3 ADC标准外设库接口函数及应用 312
10.3.1 ADC标准外设库接口函数 312
10.3.2 ADC标准外设库配置过程 315
10.3.3 ADC标准外设库的应用实例 317
10.4 ADC的HAL库接口函数及应用 321
10.4.1 ADC的HAL库接口函数 321
10.4.2 ADC的HAL库应用实例 323
习题10 331
第11章 从模块到项目 332
11.1 从模块到项目的开发思路 332
11.1.1 项目需求分析 332
11.1.2 系统总体架构设计 333
11.1.3 系统软/硬件设计 335
11.2 项目实践 336
11.2.1 项目需求分析 337
11.2.2 系统总体架构设计 338
11.2.3 系统硬件设计 339
11.2.4 系统软件设计 341
11.3 面向对象的编程思想 343
习题11 344
第12章 嵌入式操作系统 345
12.1 概述 345
12.1.1 嵌入式系统的开发方式 345
12.1.2 计算机系统的分层设计思想 347
12.2 嵌入式操作系统的概念 349
12.2.1 计算机操作系统 349
12.2.2 嵌入式操作系统 351
12.2.3 嵌入式操作系统的分类 351
12.3 嵌入式实时操作系统 352
12.3.1 μC/OS-Ⅲ的任务 352
12.3.2 μC/OS-Ⅲ时钟和中断 361
12.3.3 μC/OS-Ⅲ任务间通信与同步 365
12.4 μC/OS-Ⅲ移植与应用 366
12.4.1 μC/OS-Ⅲ源代码下载 367
12.4.2 μC/OS-Ⅲ移植 369
12.4.3 μC/OS-Ⅲ多任务应用实例 379
习题12 383
参考文献 384
作者简介
刘黎明,硕士,讲师。2013年9月—至今,在商丘师范学院电子电气工程学院任职;2018年9月—2018年12月,在美国纽约州立大学奥尔巴尼分校做访问学者;2007年8月—2010年7月,在商丘工学院任职。参加的学术组织及任职:商丘市电子协会。所承担过的重点科研或教研项目及在项目中所承担的工作:现参与国家自然基金一项,主持河南省教育厅项目一项,参与河南省教育厅项目5项,省自然科学基金1项;申请实用新型专利2项,发表与嵌入式系统相关论文3篇,教改论文2篇;近年来指导学生参加全国大学生电子设计大赛和河南省机器人大赛,获得省级一等奖1项,2等奖3项。获奖情况:2015年获商丘师范学院青年教师课堂教学大赛二等奖。
-
当代中国政府与政治(新编21世纪公共管理系列教材)
¥33.6¥48.0 -
落洼物语
¥8.7¥28.0 -
中国当代文学名篇选读
¥19.1¥53.0 -
中医基础理论
¥50.7¥59.0 -
北大人文课(平装)
¥13.9¥45.0 -
外国教育史-第2版
¥24.4¥40.0 -
宪法-第二版
¥12.2¥29.0 -
当代中国政府与政治 第二版
¥57.8¥68.0 -
EPLAN电气设计
¥29.9¥39.8 -
闯进数学世界――探秘历史名题
¥21.3¥32.8 -
企业法务教程
¥34.8¥49.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
金融学
¥29.9¥49.0 -
计算机操作系统教程(第4版)(清华大学计算机系列教材)
¥31.9¥49.0 -
三国史
¥27.5¥50.0 -
飞机总体设计
¥46.8¥78.0 -
古代汉语(第四册)
¥16.1¥35.0 -
编辑审稿实务教程
¥35.1¥45.0 -
管理学:原理与方法(第7版)(博学.大学管理类)/周三多
¥30.9¥49.0 -
(平装)北大必修课:北大口才课
¥12.2¥45.0