书籍详情
嵌入式系统导论
作者:钱晓捷
出版社:电子工业出版社
出版时间:2017-07-01
ISBN:9787121315947
定价:¥34.00
购买这本书可以去
内容简介
本书基于ARM Cortex-M3处理器的STM32微控制器,使用MDK-ARM开发软件和C语言,结合STM32驱动程序库和STM32开发板,面向底层应用编程,介绍嵌入式计算机系统的工作原理和应用技术,包括嵌入式系统组成、Cortex-M3处理器编程结构、常用指令、STM32微控制器通用输入/输出端口(GPIO)、外部中断接口(EXTI)、串行接口(USART)、直接存储器传输接口(DMA)、定时器接口(SysTick、IWDG、WWDG、TIMx、RTC)和模拟接口(ADC、DAC)等。本书可以作为高等院校计算机、电子、通信及自动控制等专业“嵌入式系统导论”或“嵌入式系统基础”的教材或参考书,也适合嵌入式系统应用开发人员和希望学习嵌入式系统的普通读者和技术人员参考。
作者简介
钱晓捷,男,副教授,郑州大学信息学院。中国计算机学会会员,现任河南省计算机学会教育专委副主任,主要从事计算机系统结构、嵌入式系统、计算机辅助教学等方面的研究。主持教育部-微软、河南省精品课程“汇编语言程序设计”、校级远程教育精品课程“微机原理及接口技术”建设。主持完成“网络CAI课件研究与开发”、“河南省新世纪网络课程建设工程项目”等科研项目。主编10余部高校教材,其中2部属于普通高等教育“十一五”国家级规划教材。具有丰富的教学经历和教研体会,主讲计算机硬件系列课程20余年,主要包括“微机原理及接口技术”、“汇编语言程序设计”、“计算机组织与结构”、“高级计算机系统结构”等。
目录
目 录
第1章 嵌入式系统设计基础\t1
1.1 嵌入式系统概述\t1
1.1.1 什么是嵌入式系统\t1
1.1.2 嵌入式系统的技术特点\t2
1.1.3 嵌入式系统的组成\t2
1.2 嵌入式系统的开发\t4
1.2.1 嵌入式系统的开发模式\t4
1.2.2 嵌入式系统开发需要的软件、硬件\t5
1.2.3 软件开发流程\t6
习题1\t7
第2章 ARM Cortex-M3处理器\t9
2.1 ARM处理器\t9
2.2 Cortex-M3处理器结构\t10
2.3 寄存器\t13
2.4 存储器组织\t15
习题2\t19
第3章 Thumb指令系统\t20
3.1 ARM指令集和Thumb指令集\t20
3.2 统一汇编语言(UAL)\t21
3.2.1 汇编语言的语句格式\t21
3.2.2 汇编语言的程序结构\t22
3.2.3 存储器空间分配指示符\t24
3.2.4 常量表达\t24
3.3 数据寻址\t25
3.3.1 寄存器寻址\t26
3.3.2 存储器寻址\t27
3.4 常用指令\t28
3.4.1 处理器指令格式\t28
3.4.2 数据传送指令\t30
3.4.3 数据处理指令\t31
3.4.4 分支跳转指令\t32
3.5 STM32启动代码\t33
3.6 开发工具MDK\t37
3.6.1 MDK安装\t38
3.6.2 MDK目录结构\t39
3.6.3 创建应用程序\t40
3.6.4 汇编语言程序的开发\t43
习题3\t45
第4章 STM32微控制器\t47
4.1 STM32微控制器结构\t47
4.1.1 STM32系列微控制器\t47
4.1.2 STM32系统结构\t49
4.1.3 STM32存储结构\t51
4.2 STM32微控制器开发\t52
4.2.1 Cortex微控制器软件接口标准CMSIS\t53
4.2.2 STM32驱动程序库\t54
4.2.3 C语言应用\t56
4.3 复位与时钟控制(RCC)\t59
习题4\t64
第5章 STM32的通用I/O端口\t66
5.1 GPIO的结构与功能\t66
5.2 GPIO寄存器\t67
5.2.1 GPIO寄存器的功能\t68
5.2.2 GPIO寄存器的应用\t69
5.3 GPIO输出应用示例:LED灯的亮灭控制\t71
5.3.1 项目创建和选项配置\t71
5.3.2 应用程序分析\t74
5.3.3 应用程序编写\t77
5.3.4 程序模拟运行\t80
5.3.5 程序硬件仿真\t83
5.4 GPIO输入应用示例:查询按键状态\t85
5.4.1 程序分析和编写\t86
5.4.2 程序调试和运行\t88
5.5 STM32库编程总结\t90
5.5.1 基于STM32库的开发过程\t90
5.5.2 使用STM32库的一般规则\t91
5.5.3 对比直接对寄存器编程\t93
习题5\t96
第6章 CM3异常和STM32中断\t98
6.1 Cortex-M3的异常\t98
6.2 STM32的中断应用\t101
6.2.1 NVIC初始化配置\t102
6.2.2 外部中断EXTI\t103
6.2.3 GPIO引脚的中断配置\t106
6.2.4 芯片外设的中断配置\t107
6.3 EXTI应用示例:按键中断\t107
6.3.1 主程序流程\t107
6.3.2 中断初始化配置\t109
6.3.3 中断应用程序编写\t111
习题6\t113
第7章 STM32的串行通信接口\t115
7.1 串行异步通信\t115
7.1.1 串行异步通信字符格式\t115
7.1.2 串行异步通信接口\t116
7.2 通用同步/异步接收/发送器(USART)\t118
7.2.1 STM32的USART功能\t118
7.2.2 STM32的USART应用\t120
7.3 USART应用示例:实现C语言标准输入/输出函数\t121
7.3.1 USART初始化配置\t121
7.3.2 输入/输出函数的重定向\t123
7.3.3 信息交互应用程序\t126
7.3.4 USART接口的中断应用\t128
习题7\t133
第8章 STM32的DMA接口\t135
8.1 DMA控制器\t135
8.1.1 DMA传输过程\t135
8.1.2 STM32的DMA功能\t136
8.1.3 STM32的DMA应用\t138
8.2 DMA应用示例:USART接口的DMA传输\t140
8.2.1 DMA初始化配置\t140
8.2.2 DMA传输应用程序编写\t142
8.3 DMA、USART和GPIO的综合应用\t145
8.3.1 综合应用的项目分析\t145
8.3.2 综合应用的编程\t146
习题8\t149
第9章 STM32的定时器接口\t151
9.1 系统时钟(SysTick)\t151
9.1.1 系统嘀嗒定时器\t151
9.1.2 SysTick应用示例:精确定时\t154
9.2 STM32看门狗\t156
9.2.1 独立看门狗(IWDG)\t156
9.2.2 IWDG应用示例:IWDG复位\t159
9.2.3 窗口看门狗(WWDG)\t161
9.2.4 WWDG应用示例:适时“喂狗”\t164
9.3 STM32定时器(TIMx)\t166
9.3.1 基本定时器(TIM6和TIM7)\t166
9.3.2 基本定时器应用示例:周期性定时中断\t170
9.4 STM32实时时钟(RTC)\t173
9.4.1 RTC结构及特性\t173
9.4.2 RTC应用示例:闹钟\t176
习题9\t179
第10章 STM32的模拟接口\t181
10.1 STM32的ADC接口\t181
10.1.1 ADC结构及特性\t181
10.1.2 ADC的转换模式\t186
10.1.3 STM32的ADC函数\t187
10.1.4 ADC应用示例:数据采集\t189
10.2 STM32的DAC接口\t194
10.2.1 DAC结构及特性\t194
10.2.2 STM32的DAC函数\t197
10.2.3 DAC应用示例:输出模拟电压\t199
习题10\t202
参考文献\t203
第1章 嵌入式系统设计基础\t1
1.1 嵌入式系统概述\t1
1.1.1 什么是嵌入式系统\t1
1.1.2 嵌入式系统的技术特点\t2
1.1.3 嵌入式系统的组成\t2
1.2 嵌入式系统的开发\t4
1.2.1 嵌入式系统的开发模式\t4
1.2.2 嵌入式系统开发需要的软件、硬件\t5
1.2.3 软件开发流程\t6
习题1\t7
第2章 ARM Cortex-M3处理器\t9
2.1 ARM处理器\t9
2.2 Cortex-M3处理器结构\t10
2.3 寄存器\t13
2.4 存储器组织\t15
习题2\t19
第3章 Thumb指令系统\t20
3.1 ARM指令集和Thumb指令集\t20
3.2 统一汇编语言(UAL)\t21
3.2.1 汇编语言的语句格式\t21
3.2.2 汇编语言的程序结构\t22
3.2.3 存储器空间分配指示符\t24
3.2.4 常量表达\t24
3.3 数据寻址\t25
3.3.1 寄存器寻址\t26
3.3.2 存储器寻址\t27
3.4 常用指令\t28
3.4.1 处理器指令格式\t28
3.4.2 数据传送指令\t30
3.4.3 数据处理指令\t31
3.4.4 分支跳转指令\t32
3.5 STM32启动代码\t33
3.6 开发工具MDK\t37
3.6.1 MDK安装\t38
3.6.2 MDK目录结构\t39
3.6.3 创建应用程序\t40
3.6.4 汇编语言程序的开发\t43
习题3\t45
第4章 STM32微控制器\t47
4.1 STM32微控制器结构\t47
4.1.1 STM32系列微控制器\t47
4.1.2 STM32系统结构\t49
4.1.3 STM32存储结构\t51
4.2 STM32微控制器开发\t52
4.2.1 Cortex微控制器软件接口标准CMSIS\t53
4.2.2 STM32驱动程序库\t54
4.2.3 C语言应用\t56
4.3 复位与时钟控制(RCC)\t59
习题4\t64
第5章 STM32的通用I/O端口\t66
5.1 GPIO的结构与功能\t66
5.2 GPIO寄存器\t67
5.2.1 GPIO寄存器的功能\t68
5.2.2 GPIO寄存器的应用\t69
5.3 GPIO输出应用示例:LED灯的亮灭控制\t71
5.3.1 项目创建和选项配置\t71
5.3.2 应用程序分析\t74
5.3.3 应用程序编写\t77
5.3.4 程序模拟运行\t80
5.3.5 程序硬件仿真\t83
5.4 GPIO输入应用示例:查询按键状态\t85
5.4.1 程序分析和编写\t86
5.4.2 程序调试和运行\t88
5.5 STM32库编程总结\t90
5.5.1 基于STM32库的开发过程\t90
5.5.2 使用STM32库的一般规则\t91
5.5.3 对比直接对寄存器编程\t93
习题5\t96
第6章 CM3异常和STM32中断\t98
6.1 Cortex-M3的异常\t98
6.2 STM32的中断应用\t101
6.2.1 NVIC初始化配置\t102
6.2.2 外部中断EXTI\t103
6.2.3 GPIO引脚的中断配置\t106
6.2.4 芯片外设的中断配置\t107
6.3 EXTI应用示例:按键中断\t107
6.3.1 主程序流程\t107
6.3.2 中断初始化配置\t109
6.3.3 中断应用程序编写\t111
习题6\t113
第7章 STM32的串行通信接口\t115
7.1 串行异步通信\t115
7.1.1 串行异步通信字符格式\t115
7.1.2 串行异步通信接口\t116
7.2 通用同步/异步接收/发送器(USART)\t118
7.2.1 STM32的USART功能\t118
7.2.2 STM32的USART应用\t120
7.3 USART应用示例:实现C语言标准输入/输出函数\t121
7.3.1 USART初始化配置\t121
7.3.2 输入/输出函数的重定向\t123
7.3.3 信息交互应用程序\t126
7.3.4 USART接口的中断应用\t128
习题7\t133
第8章 STM32的DMA接口\t135
8.1 DMA控制器\t135
8.1.1 DMA传输过程\t135
8.1.2 STM32的DMA功能\t136
8.1.3 STM32的DMA应用\t138
8.2 DMA应用示例:USART接口的DMA传输\t140
8.2.1 DMA初始化配置\t140
8.2.2 DMA传输应用程序编写\t142
8.3 DMA、USART和GPIO的综合应用\t145
8.3.1 综合应用的项目分析\t145
8.3.2 综合应用的编程\t146
习题8\t149
第9章 STM32的定时器接口\t151
9.1 系统时钟(SysTick)\t151
9.1.1 系统嘀嗒定时器\t151
9.1.2 SysTick应用示例:精确定时\t154
9.2 STM32看门狗\t156
9.2.1 独立看门狗(IWDG)\t156
9.2.2 IWDG应用示例:IWDG复位\t159
9.2.3 窗口看门狗(WWDG)\t161
9.2.4 WWDG应用示例:适时“喂狗”\t164
9.3 STM32定时器(TIMx)\t166
9.3.1 基本定时器(TIM6和TIM7)\t166
9.3.2 基本定时器应用示例:周期性定时中断\t170
9.4 STM32实时时钟(RTC)\t173
9.4.1 RTC结构及特性\t173
9.4.2 RTC应用示例:闹钟\t176
习题9\t179
第10章 STM32的模拟接口\t181
10.1 STM32的ADC接口\t181
10.1.1 ADC结构及特性\t181
10.1.2 ADC的转换模式\t186
10.1.3 STM32的ADC函数\t187
10.1.4 ADC应用示例:数据采集\t189
10.2 STM32的DAC接口\t194
10.2.1 DAC结构及特性\t194
10.2.2 STM32的DAC函数\t197
10.2.3 DAC应用示例:输出模拟电压\t199
习题10\t202
参考文献\t203
猜您喜欢