定 价:52 元
丛书名:
- 作者:钱晓捷
- 出版时间:2024/4/1
- ISBN:9787121477140
- 出 版 社:电子工业出版社
适用读者:高等院校计算机、电子、通信及自动控制等专业学生
- 中图法分类:TP360.21
- 页码:216
- 纸张:
- 版次:01
- 开本:16开
- 字数:337(单位:千字)
本书基于ARM公司的Cortex-M3处理器的STM32微控制器,使用MDK-ARM开发软件和C语言,结合STM32固件库和STM32开发板,面向底层应用编程,介绍嵌入式系统的工作原理和应用技术,包括嵌入式系统设计基础、Cortex-M3处理器、Thumb指令集、STM32微控制器、STM32的GPIO、Cortex-M3异常和STM32中断、STM32的串行通信接口、STM32的DMA接口、STM32的定时器接口、STM32的模拟接口。 本书可以作为高等院校计算机、电子、通信及自动控制等专业"嵌入式系统导论”课程或"嵌入式系统基础”课程的教材或参考书,也可以作为嵌入式系统应用开发人员和希望了解嵌入式系统的人员的参考书。
钱晓捷,男,副教授,1963年生,北京航空航天大学电子工程学院学士学位,郑州大学计算机软件与理论专业硕士学位,硕士生导师。中国计算机学会会员,现任河南省计算机学会教育专委副主任,主要从事计算机系统结构、嵌入式系统、计算机辅助教学等方面的研究。主持教育部-微软、河南省精品课程“汇编语言程序设计”、校级远程教育精品课程“微机原理及接口技术”建设。主持完成“网络CAI课件研究与开发”、“河南省新世纪网络课程建设工程项目”等科研项目。主编10余部高校教材,其中2部属于普通高等教育“十一五”国家级规划教材。具有丰富的教学经历和教研体会,主讲计算机硬件系列课程20余年,主要包括“微机原理及接口技术”、“汇编语言程序设计”、“计算机组织与结构”、“高级计算机系统结构”等。
目 录
第1章 嵌入式系统设计基础 1
1.1 嵌入式系统概述 1
1.1.1 什么是嵌入式系统 2
1.1.2 嵌入式系统的技术特点 2
1.1.3 嵌入式系统的组成 3
1.2 嵌入式系统的开发 4
1.2.1 嵌入式系统的开发模式 4
1.2.2 嵌入式系统开发需要的软件、硬件 5
1.2.3 软件开发流程 6
习题1 7
第2章 Cortex-M3处理器 9
2.1 ARM处理器 9
2.2 Cortex-M3处理器结构 11
2.3 寄存器 13
2.4 存储器组织 15
习题2 19
第3章 Thumb指令集 21
3.1 ARM指令集和Thumb指令集 21
3.2 UAL 22
3.2.1 汇编语言的语句格式 23
3.2.2 汇编语言的程序结构 23
3.2.3 存储器空间分配指示符 25
3.2.4 常量表达 26
3.3 数据寻址 27
3.3.1 寄存器寻址 27
3.3.2 存储器寻址 29
3.4 常用指令 30
3.4.1 处理器指令格式 30
3.4.2 数据传送指令 31
3.4.3 数据处理指令 32
3.4.4 分支跳转指令 33
3.5 STM32启动代码 35
3.6 开发工具MDK 39
3.6.1 MDK安装 40
3.6.2 MDK目录结构 41
3.6.3 创建应用程序 43
3.6.4 汇编语言程序的开发 46
习题3 49
第4章 STM32微控制器 51
4.1 STM32微控制器结构 51
4.1.1 STM32微控制器简介 51
4.1.2 STM32微控制器的系统结构 54
4.1.3 STM32微控制器的存储结构 55
4.2 STM32微控制器开发 57
4.2.1 Cortex微控制器软件接口标准——CMSIS 57
4.2.2 STM32固件库 59
4.2.3 C语言应用 61
4.3 RCC 63
习题4 69
第5章 STM32的GPIO 71
5.1 GPIO的结构和功能 71
5.2 GPIO寄存器 72
5.2.1 GPIO寄存器的功能 73
5.2.2 GPIO寄存器的应用 74
5.3 GPIO输出应用示例:LED的亮灭控制 76
5.3.1 项目创建和选项配置 76
5.3.2 应用程序分析 79
5.3.3 应用程序编写 82
5.3.4 程序模拟运行 85
5.3.5 程序硬件仿真 87
5.4 GPIO输入应用示例:查询按键状态 90
5.4.1 程序分析和编写 90
5.4.2 程序调试和运行 92
5.5 STM32固件库编程总结 94
5.5.1 基于STM32固件库的开发过程 94
5.5.2 STM32固件库的一般规则 95
5.5.3 对比直接对寄存器进行编程 98
习题5 100
第6章 Cortex-M3异常和STM32中断 103
6.1 Cortex-M3的异常 103
6.2 STM32中断应用 106
6.2.1 NVIC初始化配置 107
6.2.2 外部中断EXTI 108
6.2.3 GPIO引脚的中断配置 111
6.2.4 STM32外设的中断配置 112
6.3 EXTI应用示例:按键中断 112
6.3.1 主程序流程 112
6.3.2 中断初始化配置 114
6.3.3 中断应用程序编写 115
习题6 118
第7章 STM32的串行通信接口 120
7.1 串行异步通信 120
7.1.1 串行异步通信字符格式 120
7.1.2 串行异步通信接口 121
7.2 通用同步/异步接收/发送器 123
7.2.1 STM32的USART功能 123
7.2.2 STM32的USART应用 125
7.3 USART应用示例:实现C语言标准I/O函数 126
7.3.1 USART初始化配置 126
7.3.2 I/O函数的重定向 128
7.3.3 信息交互应用程序 131
7.3.4 USART的中断应用 133
习题7 137
第8章 STM32的DMA接口 139
8.1 DMA控制器 139
8.1.1 DMA传输过程 139
8.1.2 STM32的DMA功能 140
8.1.3 STM32的DMA应用 142
8.2 DMA应用示例:USART的DMA传输 144
8.2.1 DMA初始化配置 144
8.2.2 DMA传输应用程序编写 146
8.3 DMA、USART和GPIO的综合应用 149
8.3.1 综合应用的项目分析 149
8.3.2 综合应用的编程 150
习题8 153
第9章 STM32的定时器接口 155
9.1 系统时钟 155
9.1.1 系统滴答定时器 155
9.1.2 SysTick应用示例:精确定时 158
9.2 STM32的看门狗 160
9.2.1 IWDG 160
9.2.2 IWDG应用示例:IWDG复位 163
9.2.3 WWDG 164
9.2.4 WWDG应用示例:适时“喂狗” 167
9.3 STM32定时器 169
9.3.1 基本定时器 170
9.3.2 基本定时器应用示例:周期性定时中断 173
9.4 STM32实时时钟(RTC) 176
9.4.1 RTC结构及特性 176
9.4.2 RTC应用示例:闹钟 179
习题9 182
第10章 STM32的模拟接口 184
10.1 STM32的ADC 184
10.1.1 ADC结构及特性 184
10.1.2 ADC的转换模式 189
10.1.3 STM32固件库中的ADC函数 190
10.1.4 ADC应用示例:数据采集 192
10.2 STM32的DAC 196
10.2.1 DAC结构及特性 197
10.2.2 STM32固件库中的DAC函数 200
10.2.3 DAC应用示例:输出模拟电压 201
习题10 204
参考文献 206