图书介绍

嵌入式系统原理及应用 基于ARM Cortex-M3内核的STM32F103系列微控制器PDF|Epub|txt|kindle电子书版本网盘下载

嵌入式系统原理及应用 基于ARM Cortex-M3内核的STM32F103系列微控制器
  • 王益涵,孙宪坤,史志才编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302441359
  • 出版时间:2016
  • 标注页数:596页
  • 文件大小:233MB
  • 文件页数:616页
  • 主题词:单片微型计算机-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式系统原理及应用 基于ARM Cortex-M3内核的STM32F103系列微控制器PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 系统篇3

第1章 嵌入式系统概述3

1.1 嵌入式系统的定义和特点3

1.1.1 嵌入式系统的定义3

1.1.2 嵌入式系统和通用计算机比较4

1.1.3 嵌入式系统的特点5

1.2 嵌入式系统的硬件6

1.2.1 嵌入式处理器7

1.2.2 嵌入式存储器15

1.2.3 嵌入式I/O设备18

1.2.4 嵌入式I/O接口18

1.3 嵌入式系统的软件21

1.3.1 无操作系统的嵌入式软件22

1.3.2 带操作系统的嵌入式软件24

1.4 嵌入式系统的分类27

1.4.1 按硬件(嵌入式处理器)划分27

1.4.2 按软件复杂度划分27

1.4.3 按实时性划分28

1.4.4 按使用对象划分28

1.5 嵌入式系统的应用28

1.5.1 国防军事28

1.5.2 工业控制29

1.5.3 消费电子30

1.5.4 办公自动化产品30

1.5.5 网络和通信设备30

1.5.6 汽车电子31

1.5.7 金融商业31

1.5.8 生物医学32

1.5.9 信息家电32

1.6 本章小结34

习题134

第2章 嵌入式系统开发35

2.1 嵌入式系统的开发环境、开发工具和调试方式35

2.1.1 嵌入式系统的开发环境35

2.1.2 嵌入式系统的开发工具37

2.1.3 嵌入式系统的调试方式43

2.2 嵌入式系统的开发语言50

2.2.1 嵌入式硬件开发语言50

2.2.2 嵌入式软件开发语言51

2.3 嵌入式系统的开发过程53

2.3.1 需求分析54

2.3.2 系统设计55

2.3.3 系统实现61

2.3.4 系统测试70

2.3.5 系统发布73

2.4 嵌入式开发工程师之路74

2.4.1 嵌入式行业和人才的现状分析74

2.4.2 嵌入式开发工程师的能力要求74

2.4.3 嵌入式开发工程师的进阶之路75

2.5 本章小结77

习题278

第2篇 内 核篇81

第3章 ARM Cortex-M3处理器81

3.1 ARM Cortex-M3组成结构81

3.1.1 Cortex-M3内核82

3.1.2 调试系统84

3.2 ARM Cortex-M3总线接口86

3.2.1 Cortex-M3总线接口类型87

3.2.2 Cortex-M3总线连接方案88

3.3 ARM Cortex-M3编程模型89

3.3.1 工作状态89

3.3.2 数据类型89

3.3.3 寄存器89

3.3.4 指令系统93

3.3.5 操作模式和特权分级96

3.3.6 异常和中断98

3.3.7 双堆栈机制105

3.4 ARM Cortex-M3存储器系统107

3.4.1 存储器映射107

3.4.2 位带操作110

3.4.3 存储格式112

3.5 ARM Cortex-M3的低功耗模式113

3.6 本章小结114

习题3115

第4章 基于ARM Cortex-M3的STM32微控制器117

4.1 从Cortex-M3到基于Cortex-M3的MCU117

4.2 基于Cortex-M3的STM32系列微控制器概述118

4.2.1 产品线118

4.2.2 命名规则124

4.2.3 生态系统125

4.2.4 开发方法131

4.2.5 学习之路134

4.3 STM32F103微控制器基础136

4.3.1 概述136

4.3.2 主系统结构137

4.3.3 功能模块139

4.3.4 引脚定义140

4.3.5 存储器组织141

4.4 STM32F103微控制器的最小系统145

4.4.1 电源电路145

4.4.2 时钟电路148

4.4.3 复位电路149

4.4.4 调试和下载电路150

4.4.5 其他151

4.5 STM32F103微控制器的时钟系统153

4.5.1 输入时钟153

4.5.2 系统时钟155

4.5.3 由系统时钟分频得到的其他时钟155

4.5.4 STM32F10x时钟系统相关库函数157

4.6 STM32F103微控制器的低功耗模式162

4.6.1 睡眠模式163

4.6.2 停机模式163

4.6.3 待机模式164

4.7 STM32F103微控制器的安全特性165

4.7.1 看门狗165

4.7.2 电源检测166

4.7.3 时钟安全系统166

4.8 STM32F103微控制器的启动过程167

4.8.1 启动过程和启动代码概述167

4.8.2 ARM启动代码所需汇编语言基础167

4.8.3 STM32F103的启动代码分析171

4.8.4 STM32F103的启动过程分析182

4.9 建立第一个STM32F103应用工程185

4.9.1 STM32F10x标准外设库的下载和认知185

4.9.2 嵌入式开发工具的下载和安装198

4.9.3 配置STM32F103工程198

4.9.4 编写用户程序源代码206

4.9.5 编译和链接STM32F103工程207

4.9.6 调试STM32F103工程208

4.9.7 将可执行程序下载到STM32F103运行215

4.10 本章小结217

习题4217

第3篇 片内外设篇221

第5章 GPIO221

5.1 GPIO概述221

5.2 STM32F103的GPIO工作原理221

5.2.1 内部结构222

5.2.2 工作模式224

5.2.3 输出速度224

5.2.4 复用功能重映射225

5.2.5 外部中断映射和事件输出228

5.2.6 主要特性228

5.3 STM32F10x的GPIO相关库函数228

5.3.1 GPIO_DeInit229

5.3.2 GPIO_Init229

5.3.3 GPIO_SetBits231

5.3.4 GPIO_ResetBits231

5.3.5 GPIO_Write232

5.3.6 GPIO_ReadOutputDataBit232

5.3.7 GPIO_Read OutputData232

5.3.8 GPIO_ReadInputDataBit233

5.3.9 GPIO_ReadInputData233

5.3.10 GPIO_EXTILineConfig233

5.3.11 GPIO_PinRemapConfig234

5.4 STM32F103的GPIO开发实例——LED闪烁235

5.4.1 功能要求235

5.4.2 硬件设计235

5.4.3 软件流程设计236

5.4.4 软件代码实现236

5.4.5 软件模拟仿真238

5.4.6 下载到硬件运行241

5.4.7 开发经验小结——STM32微控制器开发的一般步骤241

5.5 STM32F103的GPIO开发实例——按键控制LED亮灭241

5.5.1 功能要求241

5.5.2 硬件设计241

5.5.3 软件流程设计242

5.5.4 软件代码实现243

5.5.5 软件模拟仿真244

5.5.6 下载到硬件运行246

5.5.7 开发经验小结——使用库函数开发STM32F103的GPIO246

5.6 本章小结247

习题5248

第6章 定时器249

6.1 定时器概述249

6.1.1 延时的实现249

6.1.2 可编程定时/计数器功能概述251

6.2 STM32F103的定时器概述252

6.3 STM32F103的基本定时器TIM6和TIM7252

6.3.1 内部结构253

6.3.2 时钟源253

6.3.3 计数模式254

6.3.4 主要特性254

6.4 STM32F103的通用定时器TIM2—TIM5254

6.4.1 内部结构254

6.4.2 时钟源256

6.4.3 计数模式257

6.4.4 输出比较模式259

6.4.5 PWM输出模式259

6.4.6 输入捕获模式262

6.4.7 PWM输入模式262

6.4.8 单脉冲模式263

6.4.9 编码器接口263

6.4.10 主要特性263

6.5 STM32F103的高级定时器TIM1和TIM8264

6.5.1 内部结构264

6.5.2 时钟源264

6.5.3 功能描述266

6.5.4 主要特性266

6.6 STM32F10x定时器相关库函数266

6.6.1 TIM_DeInit267

6.6.2 TIM_TimeBaseInit268

6.6.3 TIM_OC1Init269

6.6.4 TIM_OC2Init270

6.6.5 TIM_OC3Init271

6.6.6 TIM_OC4Init271

6.6.7 TIM_OC1PreloadConfig272

6.6.8 TIM_OC2PreloadConfig272

6.6.9 TIM_OC3PreloadConfig272

6.6.10 TIM_OC4PreloadConfig273

6.6.11 TIM_ARRPreloadConfig273

6.6.12 TIM_CtrlPWMOutputs274

6.6.13 TIM_Cmd274

6.6.14 TIM_GetFlagStatus275

6.6.15 TIM_ClearFlag275

6.6.16 TIM_ITConfig276

6.6.17 TIM_GetITStatus276

6.6.18 TIM_ClearITPendingBit277

6.7 STM32F103定时器开发实例——精确定时的LED闪烁277

6.7.1 功能要求277

6.7.2 硬件设计277

6.7.3 软件流程设计278

6.7.4 软件代码实现279

6.7.5 软件模拟仿真281

6.7.6 下载到硬件运行283

6.7.7 开发经验小结——使用printf在调试窗口输出284

6.8 STM32F103定时器开发实例——PWM输出285

6.8.1 功能要求285

6.8.2 硬件设计286

6.8.3 软件流程设计286

6.8.4 软件代码实现288

6.8.5 软件模拟仿真289

6.8.6 下载到硬件运行291

6.8.7 开发经验小结——基于无限循环的嵌入式软件架构291

6.9 本章小结292

习题6292

第7章 中断293

7.1 中断的基本概念293

7.1.1 中断源294

7.1.2 中断屏蔽294

7.1.3 中断处理过程294

7.1.4 中断优先级296

7.1.5 中断嵌套297

7.1.6 中断的利与弊298

7.2 STM32F103中断系统298

7.2.1 嵌套向量中断控制器NVIC298

7.2.2 STM32F103中断优先级299

7.2.3 STM32F103中断向量表300

7.2.4 STM32F103中断服务函数303

7.2.5 STM32F103中断设置过程304

7.3 STM32F103外部中断/事件控制器EXTI306

7.3.1 内部结构307

7.3.2 工作原理308

7.3.3 主要特性309

7.4 STM32F10x的NVIC相关库函数309

7.4.1 NVIC_PriorityGroupConfig310

7.4.2 NVIC_Init310

7.4.3 NVIC_DeInit313

7.5 STM32F10x的EXTI相关库函数314

7.5.1 EXTI_DeInit314

7.5.2 EXTI_Init314

7.5.3 EXTI_GetFlagStatus316

7.5.4 EXTI_ClearFlag316

7.5.5 EXTI_GetITStatus317

7.5.6 EXTI_ClearITPendingBit317

7.6 STM32F103的中断开发实例——按键控制LED亮灭318

7.6.1 功能要求318

7.6.2 硬件设计318

7.6.3 软件流程设计319

7.6.4 软件代码实现320

7.6.5 下载到硬件运行323

7.6.6 开发经验小结——前/后台嵌入式软件架构323

7.7 STM32F103的中断开发实例——精确延时的LED闪烁325

7.7.1 功能要求325

7.7.2 硬件设计325

7.7.3 软件流程设计326

7.7.4 软件代码实现328

7.7.5 软件代码分析——volatile331

7.7.6 软件模拟仿真332

7.7.7 下载到硬件运行334

7.7.8 开发经验小结——改进的前/后台嵌入式软件架构334

7.8 本章小结336

习题7336

第8章 DMA337

8.1 DMA的基本概念337

8.1.1 DMA的引入337

8.1.2 DMA的定义338

8.1.3 DMA传输要素338

8.1.4 DMA传输过程338

8.1.5 DMA的特点与应用339

8.2 STM32F103的DMA工作原理339

8.2.1 功能框图340

8.2.2 触发通道341

8.2.3 优先级344

8.2.4 传输模式344

8.2.5 主要特性344

8.3 STM32F10x的DMA相关库函数345

8.3.1 DMA_DeInit346

8.3.2 DMA_Init346

8.3.3 DMA_GetCurrDataCounter348

8.3.4 DMA_Cmd348

8.3.5 DMA_GetFlagStatus349

8.3.6 DMA_ClearFlag350

8.3.7 DMA_ITConfig351

8.3.8 DMA_GetITStatus351

8.3.9 DMA_ClearITPendingBit353

8.4 STM32F103的DMA开发实例——存储器间的数据传输353

8.4.1 功能要求353

8.4.2 硬件设计353

8.4.3 软件流程设计354

8.4.4 软件代码实现355

8.4.5 软件代码分析——const358

8.4.6 下载硬件调试358

8.4.7 开发经验小结——使用DMA365

8.5 本章小结366

习题8366

第9章 ADC367

9.1 ADC概述367

9.1.1 ADC的由来367

9.1.2 ADC的基本原理368

9.1.3 ADC的性能参数370

9.1.4 ADC的主要类型371

9.2 STM32F103的ADC工作原理372

9.2.1 主要特性373

9.2.2 内部结构373

9.2.3 ADC通道及分组375

9.2.4 ADC触发转换376

9.2.5 ADC时钟和转换时间377

9.2.6 ADC工作过程378

9.2.7 ADC中断和DMA请求378

9.2.8 独立模式和双ADC模式380

9.2.9 单次和连续转换模式380

9.2.10 扫描模式381

9.2.11 间断模式383

9.2.12 校准384

9.3 STM32F10x的ADC相关库函数384

9.3.1 ADC_DeInit386

9.3.2 ADC_Init386

9.3.3 ADC_RegularChannelConfig388

9.3.4 ADC_InjectedChannelConfig390

9.3.5 ADC_InjectedSequencerLengthConfig390

9.3.6 ADC_SetInjectedOffset391

9.3.7 ADC_TampSensorVrefintCmd391

9.3.8 ADC_Cmd392

9.3.9 ADC_ResetCalibration392

9.3.10 ADC_GetResetCalibrationStatus392

9.3.11 ADC_StartCalibration393

9.3.12 ADC_GetCalibrationStatus393

9.3.13 ADC_SoftwareStartConvCmd394

9.3.14 ADC_ExternalTrigConvCmd394

9.3.15 ADC_SoftwareStartInjectedConvCmd395

9.3.16 ADC_ExternalTrigInjectedConvCmd395

9.3.17 ADC_ExternalTrigInjectedConvConfig396

9.3.18 ADC_AutoInjectedConvCmd397

9.3.19 ADC DiscModeCmd397

9.3.20 ADC_DiscModeChannelCountConfig398

9.3.21 ADC_ Inj ectedDiscModeCmd398

9.3.22 ADC GetConversionValue398

9.3.23 ADC_GetInjectedConversionValue399

9.3.24 ADC_GetFlagStatus399

9.3.25 ADC_ClearFlag400

9.3.26 ADC_ITConfig400

9.3.27 ADC GetITStatus401

9.3.28 ADC_ClearITPendingBit401

9.3.29 ADC DMACmd402

9.4 STM32F103的ADC开发实例——读取GPIO引脚电压402

9.4.1 功能要求402

9.4.2 硬件设计402

9.4.3 软件流程设计403

9.4.4 软件代码实现406

9.4.5 软件模拟仿真409

9.4.6 下载到硬件调试413

9.4.7 开发经验小结——使用软件滤波降低噪声414

9.5 STM32F103的ADC开发实例——读取芯片温度414

9.5.1 功能要求414

9.5.2 硬件设计414

9.5.3 软件流程设计415

9.5.4 软件代码实现418

9.5.5 下载到硬件调试421

9.5.6 开发经验小结——轮询、中断和DMA422

9.6 本章小结423

习题9423

第10章 UART425

10.1 数据通信的基本概念426

10.1.1 并行和串行426

10.1.2 单工、半双工和全双工426

10.1.3 同步和异步426

10.2 UART通信原理427

10.2.1 UART的物理层427

10.2.2 UART的协议层430

10.3 STM32F103的USART工作原理432

10.3.1 主要特性432

10.3.2 内部结构432

10.3.3 USART中断435

10.3.4 使用DMA进行USART通信436

10.4 STM32F10x的USART相关库函数437

10.4.1 USART DeInit438

10.4.2 USART Init438

10.4.3 USART Cmd439

10.4.4 USART SendData440

10.4.5 USART ReceiveData440

10.4.6 USART_GetFlagStatus441

10.4.7 USART_ClearFlag441

10.4.8 USART_ITConfig442

10.4.9 USART GetITStatus443

10.4.10 USART_ ClearITPendingBit444

10.4.11 USART DMACmd444

10.5 STM32F103的USART开发实例——重定向printf445

10.5.1 功能要求445

10.5.2 硬件设计445

10.5.3 软件流程设计446

10.5.4 软件代码实现447

10.5.5 下载到硬件运行449

10.5.6 开发经验小结——使用printf重定向到USART1451

10.6 STM32F103的USART开发实例——PC串口通信452

10.6.1 功能要求452

10.6.2 硬件设计452

10.6.3 软件流程设计452

10.6.4 软件代码实现452

10.6.5 下载到硬件运行454

10.6.6 开发经验小结——库函数开发STM32F103外设的一般原理455

10.7 本章小结459

习题10459

第11章 SPI461

11.1 SPI通信原理461

11.1.1 SPI的物理层462

11.1.2 SPI的协议层464

11.2 STM32F103的SPI工作原理469

11.2.1 主要特性469

11.2.2 内部结构470

11.2.3 SPI主模式471

11.2.4 SPI从模式472

11.2.5 SPI状态标志和中断473

11.2.6 SPI发送数据和接收数据474

11.2.7 使用DMA进行SPI通信475

11.3 STM32F10x的SPI相关库函数476

11.3.1 SPI_ I2S_ DeInit477

11.3.2 SPI_ Init477

11.3.3 SPI_ Cmd479

11.3.4 SPI_ I2S_ SendData479

11.3.5 SPI_ I2S_ ReceiveData480

11.3.6 SPI_I2S_GetFlagStatus480

11.3.7 SPI_I2S_ClearFlag481

11.3.8 SPI_I2S_ITConfig481

11.3.9 SPI_I2S_GetITStatus482

11.3.10 SPI_I2S_ClearITPendingBit483

11.3.11 SPI_I2S_DMACmd483

11.4 STM32F103的SPI开发实例——读写SPI_FLASH484

11.4.1 功能要求484

11.4.2 硬件设计484

11.4.3 软件架构设计485

11.4.4 软件模块分析486

11.4.5 软件代码实现507

11.4.6 下载硬件调试517

11.4.7 下载到硬件运行522

11.4.8 开发经验小结——模块化开发的嵌入式软件设计523

11.5 本章小结524

习题11524

第12章 I2C526

12.1 I2C通信原理526

12.1.1 I2C的物理层527

12.1.2 I2C的协议层529

12.2 STM32F103的I2C工作原理533

12.2.1 主要特性534

12.2.2 内部结构534

12.2.3 I2C从模式535

12.2.4 I2C主模式537

12.2.5 I2C中断540

12.2.6 使用DMA进行I2C通信540

12.3 STM32F10x的I2C相关库函数542

12.3.1 I2C_DeInit543

12.3.2 I2C_Init543

12.3.3 I2C_Cmd545

12.3.4 I2C_GenerateSTART545

12.3.5 I2C_ReadRegister545

12.3.6 I2C_Send7bitAddress546

12.3.7 I2C_SendData546

12.3.8 I2C_ReceiveData547

12.3.9 I2C_CheckEvent547

12.3.10 I2C_AcknowledgeConfig548

12.3.11 I2C_GenerateSTOP548

12.3.12 I2C_GetFlagStatus549

12.3.13 I2C_ClearFlag550

12.3.14 I2C_ITConfig551

12.3.15 I2C_GetITStatus551

12.3.16 I2C_ClearITPendingBit552

12.3.17 I2C_DMACmd552

12.4 STM32F103的I2C开发实例——读写I2C_EEPROM553

12.4.1 功能要求553

12.4.2 硬件设计553

12.4.3 软件架构设计554

12.4.4 软件模块分析555

12.4.5 软件代码实现566

12.4.6 下载到硬件调试574

12.4.7 下载到硬件运行577

12.4.8 开发经验小结—嵌入式驱动程序开发原理578

12.5 本章小结579

习题12580

附录A ASCII码表581

附录B STM32F103微控制器大容量产品系列引脚定义表583

附录C STM32F103微控制器中等容量产品系列引脚定义表589

热门推荐