《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》谭贵【文字版_PDF电子书_推荐】_计算机类

如何自学 占星术 占星教程网盘 塔罗牌教程百度网盘

《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》谭贵【文字版_PDF电子书_推荐】

《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》封面图片

内容简介:

本书选用的STM32芯片基于ARM Cortex-M3体系结构,根据基于MCU的嵌入式技术实际应用需求,合理地选择了多种常用的重要外设接口,如USART、SPI、I2C、FSCM、SDIO总线、以太网等,结合丰富的实例及工程源代码,由浅入深、系统全面地介绍嵌入式系统的底层工作原理。在此过程中,通过穿插多个综合示例的讲解,如命令行外壳程序Shell、eFat文件系统、Telnet远程控制、?C/OS-III实时操作系统的移植过程,无论是嵌入式的初学者,还是有一定开发经验的工程师都能从中获益,使读者既能系统全面地掌握嵌入式开发所需的软硬件知识,又能锻炼他们的综合开发能力,为将来从事嵌入式开发方面的工作奠定坚实的基础。

作者简介:

谭贵,男,北京大学计算机科学与技术学士毕业,现供职于富士康科技集团,热爱嵌入式开发技术,精通C、Java语言,Tcl和bash脚本应用;熟悉从MCU裸板外设驱动开发和uCosII实时操作系统的移植,以及基于Linux系统的嵌入式应用开发。

目  录:

第1章 开发利器:STM32库和MDK Keil 1

1.1 学习启航:闪烁的跑马灯 1

1.1.1 实验结果呈现 1

1.1.2 实验分析 2

1.1.3 配置GPIO引脚 5

1.1.4 实验控制逻辑 6

1.2 STM32库结构和CMSIS标准 8

1.2.1 STM32库层次结构 9

1.2.2 CMSIS层次结构 9

1.2.3 STM32库结构中的文件关系 10

1.2.4 STM32库函数命名规则 13

1.2.5 STM32库常见的几个状态类型 13

1.3 工程开发环境设置 14

1.3.1 有关MDK 14

1.3.2 使用MDK建立工程的步骤 15

第2章 STM32体系结构 25

2.1 总线与通信接口 25

2.1.1 总线组成 25

2.1.2 重要的总线术语 26

2.2 STM32功能框架 27

2.2.1 系统组成 27

2.2.2 总线单元及挂接设备 28

2.3 STM32存储器映射 29

2.3.1 独立编址 30

2.3.2 统一编址(存储器映像编址) 31

2.3.3 CM3外设地址空间映射 32

2.3.4 地址空间映射详解 34

2.4 STM32时钟结构 39

2.4.1 STM32F103ZET6的时钟树 39

2.4.2 时钟树二级框架 40

2.4.3 时钟启用过程 41

2.5 系统时钟树与地址空间映射的关系 43

第3章 STM32系统启动过程分析 44

3.1 CM3的复位序列 44

3.1.1 堆栈 45

3.1.2 向量表 47

3.2 STM32启动代码分析 49

3.3 STM32系统时钟初始化 52

3.3.1 时钟源的选择 52

3.3.2 系统时钟设置 56

3.4 程序运行环境初始化函数__main() 60

3.4.1 回顾编译和链接过程 60

3.4.2 映像文件的组成 61

3.4.3 映像的加载过程 63

3.4.4 由MDK集成环境自动生成的分散加载文件 65

3.4.5 _main()函数的作用 66

第4章 通用GPIO操作 68

4.1 实验结果预览:LED跑马灯 68

4.2 GPIO基本知识 68

4.2.1 GPIO分组管理及其引脚 69

4.2.2 GPIO工作模式及其配置 69

4.2.3 GPIO引脚的写入和读出 71

4.3 实验代码解析 74

4.3.1 实验现象原理分析 74

4.3.2 源代码分析 78

4.4 创建工程 81

4.4.1 建立工程目录结构 81

4.4.2 导入源代码文件 81

4.4.3 编译执行 82

4.5 编译调试 82

4.5.1 调试方法 82

4.5.2 栈和变量观察窗口 83

4.5.3 运行程序并调试:一个函数一个断点 84

4.5.4 运行程序并调试:多个函数多个断点 86

第5章 外部中断EXTI操作 90

5.1 实验结果预览:LED跑马灯_中断控制 90

5.2 异常与中断 91

5.2.1 Cortex-M3的异常向量 91

5.2.2 异常向量表 92

5.3 NVIC与中断控制 93

5.3.1 NVIC简述 93

5.3.2 NVIC与外部中断 93

5.3.3 NVIC中断的优先级 94

5.3.4 NVIC初始化 95

5.4 EXTI基本知识 97

5.4.1 EXTI简介 97

5.4.2 EXTI控制器组成结构 97

5.4.3 GPIO引脚到EXTI_Line的映射 100

5.4.4 EXTI_Line到NVIC的映射 102

5.5 实验代码解析 103

5.5.1 工程源码的逻辑结构 103

5.5.2 实验代码软硬件原理 104

5.5.3 实验代码分析 107

5.6 创建工程 109

5.6.1 建立工程目录结构 109

5.6.2 导入源代码文件 109

5.6.3 编译执行 110

5.7 编译调试 111

5.7.1 打开内存窗口 111

5.7.2 设置断点 111

5.7.3 运行程序并调试 112

第6章 USART接口 115

6.1 实验结果预览 115

6.1.1 实验准备工作 115

6.1.2 实验现象描述 116

6.2 USART基本知识 117

6.2.1 串行异步通信协议 117

6.2.2 USART与接口标准RS-232 118

6.3 STM32 USART结构 119

6.3.1 USART工作模式 119

6.3.2 精简的USART结构 119

6.3.3 USART单字节收发过程 120

6.4 USART寄存器位功能定义 121

6.4.1 状态寄存器(USART_SR) 121

6.4.2 数据寄存器(USART_DR) 122

6.4.3 控制寄存器1(USART_CR1) 122

6.4.4 控制寄存器2(USART_CR2) 123

6.4.5 控制寄存器3(USART_CR3) 123

6.4.6 分数波特率寄存器USART_BRR 124

6.4.7 USART模块寄存器组 125

6.4.8 USART模块初始化函数 126

6.4.9 USART常用函数功能说明 127

6.5 USART实验代码分析 128

6.5.1 实验电路(硬件连接关系) 128

6.5.2 工程源代码文件层次结构 130

6.5.3 应用层(主程序控制逻辑) 131

6.5.4 用户驱动层 133

6.5.5 函数printf()重定向 135

6.6 创建工程 135

6.6.1 建立工程目录结构 135

6.6.2 创建文件组和导入源文件 136

6.6.3 编译执行 137

第7章 USART综合应用:命令行外壳程序Shell 138

7.1 实验结果预览 138

7.2 基于USART的I/O函数 139

7.2.1 字符及字符串获取函数:xgetc()和xgets() 139

7.2.2 字符及字符串打印函数:xputc()和xputs() 141

7.3 可变参数输出函数xprintf() 142

7.3.1 可变参数 142

7.3.2 可变参数宏的使用与作用 143

7.3.3 用可变参数宏实现自己的格式化输出函数xprintf() 144

7.4 Shell外壳 145

7.4.1 Shell命令管理结构 146

7.4.2 Shell命令解析过程 147

7.4.3 命令函数之参数解析 150

7.5 建立工程,编译和运行 151

7.5.1 创建和配置工程 151

7.5.2 编译执行 153

第8章 I2C接口 154

8.1 实验结果预览:轮询写入/读出EEPROM数据 154

8.2 I2C总线协议 155

8.2.1 总线特点 155

8.2.2 I2C应用结构 155

8.2.3 总线信号时序分析 156

8.3 STM32 I2C模块 158

8.3.1 I2C组成框图 158

8.3.2 I2C主模式工作流程 159

8.3.3 I2C中断及DMA请求 161

8.4 I2C EEPROM读写示例及分析 162

8.4.1 示例电路连接 162

8.4.2 app.c文件中的main()函数 163

8.4.3 eeprom.h文件 166

8.4.4 eeprom.c文件 167

8.4.5 shell.c文件 174

8.5 建立工程,编译及运行 175

8.5.1 创建和配置工程 175

8.5.2 编译执行 176

第9章 DMA接口 177

9.1 实验结果预览 177

9.2 通用DMA的作用及特征 178

9.3 STM32 DMA基本知识 178

9.3.1 DMA与系统其他模块关系图 178

9.3.2 STM32 DMA组成 179

9.4 实验示例分析 183

9.4.1 main.c文件中的main()函数 184

9.4.2 USART1的初始化 184

9.4.3 DMA通道中断处理函数 189

9.4.4 sysTick中断处理函数 190

9.4.5 DMA通道配置的其他寄存器 191

9.4.6 DMA用户测试命令及其执行函数 192

9.5 建立工程,编译和执行 193

9.5.1 建立以下工程文件夹 194

9.5.2 创建文件组和导入源文件 194

9.5.3 编译运行 194

第10章 实时时钟RTC 195

10.1 实验结果预览 195

10.2 STM32 RTC模块 196

10.2.1 STM32后备供电区域 196

10.2.2 RTC组成 199

10.3 RTC实验设计与源码分析 204

10.3.1 硬件连接和GPIO资源 204

10.3.2 实验源代码逻辑结构 204

10.3.3 源代码分析 205

10.4 建立工程,编译和执行 212

10.4.1 建立以下工程文件夹 212

10.4.2 创建文件组和导入源文件 212

10.4.3 编译执行 213

第11章 系统定时器SysTick 214

11.1 SysTick简述 214

11.2 SysTick工作过程 214

11.3 SysTick寄存器位功能定义 215

11.3.1 控制和状态寄存器:STK_CTRL 215

11.3.2 重载寄存器:STK_LOAD 216

11.3.3 当前计数值寄存器:STK_VAL 217

11.3.4 校正寄存器:STK_CALIB 217

11.3.5 SysTick模块寄存器组 217

11.3.6 配置SysTick定时器 218

11.4 基于SysTick的延时函数代码分析 220

11.4.1 实现原理 220

11.4.2 实现代码分析 220

11.4.3 基于SysTick延时的LED闪烁命令 223

11.5 建立工程,编译和执行 224

11.5.1 建立以下工程文件夹 224

11.5.2 创建文件组和导入源文件 224

11.5.3 编译运行 226

第12章 SPI接口 227

12.1 实验现象预览:轮询写入/读出SPI Flash数据 227

12.2 SPI总线协议 228

12.2.1 总线信号及其应用结构 228

12.2.2 SPI内部结构与工作原理 229

12.3 STM32 SPI模块 231

12.3.1 SPI组成框图 231

12.3.2 STM32 SPI主模式数据收发过程 232

12.3.3 SPI中断及DMA请求 234

12.4 W25Q128FV规格说明 234

12.4.1 W25Q128FV状态和控制管理 235

12.4.2 W25Q128FV常用指令 236

12.5 程序入口与SPI初始化代码 237

12.5.1 实验硬件资源 237

12.5.2 工程入口文件main.c 238

12.5.3 spiflash.c文件中的spiFlash_Init()函数 239

12.6 SPI Flash测试代码分析 243

12.6.1 spiflash.c文件中的SPI Flash测试函数spiTest() 244

12.6.2 SPI Flash ID读取函数sFLASH_readID() 245

12.6.3 扇区擦除函数sFLASH_eraseSector() 246

12.6.4 Flash页写函数sFLASH_writePage() 246

12.6.5 Flash读函数sFLASH_readBuffer() 247

12.6.6 Flash字节发送函数sFLASH_SendByte() 248

12.7 向Shell添加SPI测试指令spitest 249

12.8 建立工程,编译和执行 250

12.8.1 建立以下工程文件夹 250

12.8.2 创建文件组和导入源文件 250

12.8.3 编译运行 252

第13章 网络接口:以太网 253

13.1 网络体系结构简介 253

13.1.1 三种网络模型 253

13.1.2 以太网标准(Ethernet) 256

13.2 ENC28J60知识 257

13.2.1 ENC28J60概述 257

13.2.2 控制寄存器 259

13.2.3 以太网缓冲器 260

13.2.4 PHY寄存器 261

13.2.5 ENC28J60 SPI指令集 261

13.2.6 ENC28J60初始化 263

13.2.7 使用ENC28J60收发数据 268

13.2.8 ENC28J60驱动代码总结 272

13.3 uIP协议栈简介 274

13.3.1 uIP特性 274

13.3.2 uIP应用接口 275

13.3.3 uIP的初始化及配置函数 277

13.3.4 uIP的主程序循环 277

13.4 uIP移植分析 279

13.4.1 下载uIP1.0版源码文件 279

《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》谭贵【文字版_PDF电子书_下载】大小:12.82MB已经过安全软件检测无毒,请您放心下载。浏览器不支持脚本!购买本书:当当图书商城 | | 孔夫子旧书

摘要:《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》是一部兼具理论深度与实践价值的嵌入式开发学习读物。全书围绕STM32微控制器与μC/OS-Ⅲ实时操作系统展开,通过工程化视角帮助读者建立完整的嵌入式开发体系。书中不仅讲解了硬件基础、软件架构、实时系统原理以及任务管理机制,还结合大量实例分析项目开发过程中的关键技术与常见问题,使读者能够在真实开发场景中掌握嵌入式系统设计方法。对于初学者而言,本书能够提供循序渐进的学习路径;对于有一定基础的开发者而言,则能够进一步提升系统设计能力和工程实践水平。通过对STM32外设资源、实时操作系统内核、任务调度机制以及项目实战经验的系统讲解,读者能够更加深入地理解嵌入式产品开发流程,掌握从硬件驱动到底层系统再到应用层设计的核心技能,为从事智能设备、工业控制、物联网及自动化领域开发工作奠定坚实基础。

工程实践学习路径

《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》最大的特点之一在于其鲜明的工程化思维。与传统教材偏重理论介绍不同,本书更加关注实际项目开发过程中的应用需求,通过工程师的视角引导读者逐步掌握嵌入式开发技能。

书中从嵌入式系统基础知识开始讲解,帮助读者建立对微控制器、开发环境以及硬件结构的整体认识。对于初学者而言,这种循序渐进的知识组织方式能够有效降低学习门槛,提高理解效率。

在学习过程中,读者不仅能够掌握单个知识点,还能够了解不同模块之间的关联关系。例如硬件驱动与操作系统任务之间的协同机制,外设管理与系统调度之间的配合方式,都在案例中得到充分体现。

通过多个完整项目案例的分析,读者能够学习到真实开发流程中的设计思路,包括需求分析、系统规划、模块划分以及功能实现等关键步骤。这种工程实践经验对于未来从事嵌入式开发工作具有重要参考价值。

STM32核心技术解析

STM32作为当前应用广泛的ARM Cortex-M系列微控制器,在工业控制、智能家居、消费电子以及物联网领域拥有广泛应用。本书围绕STM32平台展开深入讲解,使读者能够快速掌握其核心开发技术。

在硬件架构部分,书中详细介绍了STM32的时钟系统、中断机制、存储结构以及寄存器管理方式。通过对底层原理的深入分析,帮助读者理解系统运行机制,为后续开发打下坚实基础。

针对常用外设资源,作者分别讲解了GPIO、USART、SPI、I2C、ADC、DMA以及定时器等模块的配置与使用方法。每个知识点都配有实际示例,使抽象概念变得更加直观易懂。

在驱动开发方面,书中不仅介绍标准库和硬件抽象层的使用技巧,还强调底层寄存器操作的重要性。通过软硬件结合的学习方式,读者能够更全面地掌握STM32开发能力。

随着学习不断深入,读者能够逐渐建立起完整的STM32知识体系,从简单的LED控制到复杂的数据采集与通信系统开发,形成较强的独立设计与开发能力。

实时系统设计思想

μC/OS-Ⅲ作为经典实时操作系统之一,在嵌入式领域具有重要影响力。本书专门针对该系统进行系统化讲解,帮助读者理解实时操作系统的设计思想与运行机制。

书中首先介绍实时操作系统的基本概念,包括任务、优先级、调度器以及时间管理等内容。通过这些基础知识的学习,读者能够认识到实时系统与传统裸机开发之间的本质区别。

在任务管理部分,作者深入讲解任务创建、任务删除、任务切换以及任务状态转换等关键内容。通过实际代码分析,帮助读者理解系统内核如何完成多任务调度。

针对任务间通信问题,书中详细介绍了消息队列、信号量、互斥锁以及事件标志组等机制。通过合理使用这些工具,可以有效解决资源共享和任务同步问题,提高系统稳定性。

此外,本书还对时间片管理、内存管理以及中断服务机制进行了深入分析,使读者能够从系统层面理解实时操作系统的整体架构,为后续复杂项目开发提供技术支撑。

项目开发综合能力

嵌入式开发不仅需要掌握单独技术模块,更需要具备系统整合能力。《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》在项目实践部分重点培养读者的综合开发能力。

通过完整项目案例,读者能够学习如何将硬件驱动、实时操作系统以及应用逻辑整合到统一架构之中。这样的学习方式有助于提升整体设计思维和项目管理能力。

书中涉及的数据采集系统、通信控制系统以及多任务管理应用等案例,均来源于实际工程环境。这些实例不仅具有较高的实用价值,也能够帮助读者提前了解行业开发模式。

在调试与优化方面,作者分享了大量实际经验,包括系统异常分析、任务死锁排查、内存泄漏检测以及性能优化技巧等内容。这些经验对于提高开发效率具有重要意义。

随着项目实践不断深入,读者能够逐渐掌握需求分析、系统设计、编码实现、测试验证以及维护升级等完整开发流程,形成符合企业需求的工程化开发能力。

总结:

《跟工程师学嵌入式开发:基于STM32和μC_OS-Ⅲ》以工程实践为核心,以STM32与μC/OS-Ⅲ为技术主线,通过系统化知识结构和丰富项目案例,为读者构建了一条清晰而高效的嵌入式学习路线。无论是硬件基础知识、驱动开发技术,还是实时操作系统原理与工程项目实践,都能够在书中获得全面而深入的学习体验。

从学习价值来看,本书兼顾理论与实践,既适合作为嵌入式开发入门教材,也适合作为工程师提升专业能力的重要参考资料。通过对嵌入式系统设计思想和开发方法的深入理解,读者能够更好地应对未来智能化与数字化时代带来的技术挑战,实现从学习者向专业开发者的成长跨越。

本文由nayona.cn整理

点击联系需要东西方神秘学学习资料,专业的咨询

只要网页介绍资料,全部都有,还有很多还没来得及更新
每天更新200-300款资料
全网最大最全的神秘学资料平台
请需要什么资料,直接在对话框直接联系我,24小时在线,方便快捷
请需要什么资料,直接在对话框直接联系我,24小时在线,方便快捷
请需要什么资料,直接在对话框直接联系我,24小时在线,方便快捷
有看中网站记得联系我
图片2            

联系我们

图片2

关注公众号

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
雅书雅书
《中华全国工商业联合会简史 1953-2013》.pdf
上一篇 2026年6月6日 下午10:25
《股票就该这样玩儿:打造你自己的炒股盈利系统》王铁民【文字版_PDF电子书_推荐】_投资理财
下一篇 2026年6月6日 下午10:27
易学资料

对占星塔罗感兴趣关注公众号

相关推荐