图书介绍

STM32库开发实战指南 基于STM32F103pdf电子书版本下载

STM32库开发实战指南  基于STM32F103
  • 刘火良,杨森编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111565314
  • 出版时间:2017
  • 标注页数:694页
  • 文件大小:91MB
  • 文件页数:712页
  • 主题词:微控制器-系统开发-指南

PDF下载


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

下载说明

STM32库开发实战指南 基于STM32F103PDF格式电子书版下载

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

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

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

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

图书目录

第一部分 基础篇 2

第1章 如何安装KEIL5 2

1.1 温馨提示 2

1.2 获取KEIL5安装包 2

1.3 开始安装KEIL5 3

1.4 安装STM32芯片包 5

第2章 如何用DAP仿真器下载程序 7

2.1 仿真器简介 7

2.2 硬件连接 7

2.3 仿真器配置 8

2.4 选择目标板 9

2.5 下载程序 10

第3章 如何用串口下载程序 11

3.1 安装USB转串口驱动 11

3.2 硬件连接 11

3.3 开始下载 12

3.4 ISP一键下载原理分析 14

3.4.1 ISP简介 14

3.4.2 ISP普通下载 14

3.4.3 BOOT配置 15

3.4.4 ISP一键下载 15

第4章 初识STM32 17

4.1 什么是STM32 17

4.2 STM32能做什么 17

4.2.1 智能手环 18

4.2.2 微型四轴飞行器 19

4.2.3 淘宝众筹 19

4.3 STM32怎么选型 20

4.3.1 STM32分类 20

4.3.2 STM32命名方法 21

4.3.3 选择合适的MCU 21

第5章 什么是寄存器 24

5.1 STM32芯片外观 24

5.2 芯片里面有什么 25

5.3 存储器映射 27

5.4 寄存器映射 30

5.4.1 STM32的外设地址映射 31

5.4.2 C语言对寄存器的封装 33

第6章 新建工程——寄存器版 38

6.1 新建本地工程文件夹 38

6.2 新建工程 39

6.3 下载程序 42

第7章 使用寄存器点亮LED 43

7.1 GPIO简介 43

7.2 GPIO框图剖析 43

7.2.1 基本结构分析 43

7.2.2 GPIO工作模式 47

7.3 实验:使用寄存器点亮LED 48

7.3.1 硬件连接 49

7.3.2 启动文件 50

7.3.3 stm32f10x.h文件 51

7.3.4 main文件 52

7.3.5 下载验证 56

第8章 自己写库——构建库函数雏形 57

8.1 什么是STM32函数库 57

8.2 为什么采用库来开发及学习 58

8.3 实验:构建库函数雏形 58

8.3.1 外部寄存器结构体定义 59

8.3.2 外设存储器映射 60

8.3.3 外设声明 60

8.3.4 定义位操作函数 62

8.3.5 定义初始化结构体 65

8.3.6 定义引脚模式的枚举类型 65

8.3.7 定义GPIO初始化函数 69

8.3.8 全新面貌,使用函数点亮LED 72

8.3.9 下载验证 73

8.3.10 总结 73

第9章 初识STM32标准库 75

9.1 CMSIS标准及库层次关系 75

9.1.1 库目录、文件简介 76

9.1.2 库各文件间的关系 81

9.2 使用帮助文档 81

9.2.1 常用官方资料 81

9.2.2 初识库函数 83

第10章 新建工程——库函数版 85

10.1 新建本地工程文件夹 85

10.2 新建工程 86

第11章 GPIO输出——使用固件库点亮LED 93

11.1 硬件设计 93

11.2 软件设计 93

11.2.1 编程要点 94

11.2.2 代码分析 94

11.2.3 下载验证 99

11.3 STM32标准库补充知识 99

第12章 GPIO输入——按键检测 102

12.1 硬件设计 102

12.2 软件设计 103

12.2.1 编程要点 103

12.2.2 代码分析 103

12.3 下载验证 105

第13章 GPIO——位带操作 106

13.1 位带简介 106

13.1.1 外设位带区 106

13.1.2 SRAM位带区 107

13.1.3 位带区和位带别名区地址转换 107

13.2 GPIO位带操作 108

第14章 启动文件 111

14.1 启动文件简介 111

14.2 查找ARM汇编指令 111

14.3 启动文件代码讲解 111

第15章 RCC——使用HSE/HSI配置时钟 118

15.1 RCC主要作用——时钟部分 118

15.2 RCC框图剖析——时钟部分 118

15.2.1 系统时钟 118

15.2.2 其他时钟 122

15.3 配置系统时钟实验 123

15.3.1 使用HSE 123

15.3.2 使用HSI 123

15.3.3 硬件设计 123

15.3.4 软件设计 124

15.3.5 下载验证 128

第16章 STM32中断应用概览 130

16.1 异常类型 130

16.2 NVIC简介 131

16.2.1 NVIC寄存器简介 131

16.2.2 NVIC中断配置固件库 132

16.3 中断优先级 132

16.3.1 优先级定义 132

16.3.2 优先级分组 132

16.4 中断编程 133

第17章 EXTI——外部中断/事件控制器 135

17.1 EXTI简介 135

17.2 EXTI功能框图剖析 135

17.3 中断/事件线 137

17.4 EXTI初始化结构体详解 138

17.5 外部中断控制实验 138

17.5.1 硬件设计 139

17.5.2 软件设计 139

17.5.3 下载验证 143

第18章 SysTick——系统定时器 144

18.1 SysTick简介 144

18.2 SysTick寄存器介绍 144

18.3 SysTick定时实验 145

18.3.1 硬件设计 145

18.3.2 软件设计 145

18.3.3 下载验证 152

第19章 通信的基本概念 153

19.1 串行通信与并行通信 153

19.2 全双工、半双工及单工通信 154

19.3 同步通信与异步通信 154

19.4 通信速率 155

第20章 USART——串口通信 156

20.1 串口通信协议简介 156

20.1.1 物理层 156

20.1.2 协议层 159

20.2 STM32的USART简介 160

20.3 USART功能框图剖析 161

20.4 USART初始化结构体详解 165

20.5 USART1接发通信实验 166

20.5.1 硬件设计 166

20.5.2 软件设计 167

20.5.3 下载验证 171

20.6 使用USART1指令控制RGB彩灯的实验 172

20.6.1 硬件设计 172

20.6.2 软件设计 172

20.6.3 下载验证 176

第21章 DMA——直接存储器访问 177

21.1 DMA简介 177

21.2 DMA控制器的框图剖析 177

21.3 DMA数据配置 179

21.4 DMA初始化结构体详解 180

21.5 从存储器到存储器模式的实验 182

21.5.1 硬件设计 182

21.5.2 软件设计 182

21.5.3 下载验证 186

21.6 从存储器到外设模式的实验 186

21.6.1 硬件设计 186

21.6.2 软件设计 186

21.6.3 下载验证 189

第22章 常用存储器介绍 190

22.1 存储器种类 190

22.2 RAM 191

22.2.1 DRAM 191

22.2.2 SRAM 192

22.2.3 DRAM与SRAM的应用场合 192

22.3 非易失性存储器 192

22.3.1 ROM 192

22.3.2 Flash存储器 193

第23章 I2C-—读写EEPROM 195

23.1 I2C协议简介 195

23.1.1 I2C物理层 195

23.1.2 协议层 196

23.2 STM32的I2C特性及架构 199

23.2.1 STM32的I2C外设简介 199

23.2.2 STM32的I2C架构剖析 199

23.2.3 通信过程 201

23.3 I2C初始化结构体详解 203

23.4 I2C——读写EEPROM实验 204

23.4.1 硬件设计 204

24.4.2 软件设计 205

23.4.3 下载验证 222

第24章 SPI——读写串行Flash存储器 223

24.1 SPI协议简介 223

24.1.1 SPI物理层 223

24.1.2 协议层 224

24.2 STM32的SPI特性及架构 226

24.2.1 STM32的SPI外设简介 226

24.2.2 STM32的SPI架构剖析 227

24.2.3 通信过程 228

24.3 SPI初始化结构体详解 229

24.4 SPI——读写串行Flash存储器实验 231

24.4.1 硬件设计 231

24.4.2 软件设计 232

24.4.3 下载验证 250

第25章 串行Flash文件系统——FatFs 251

25.1 文件系统 251

25.2 FatFs文件系统简介 252

25.2.1 FatFs的目录结构 252

25.2.2 FatFs帮助文档 252

25.2.3 FatFs源码 253

25.3 FatFs文件系统移植实验 254

25.3.1 FatFs程序结构图 254

25.3.2 硬件设计 254

25.3.3 FatFs移植步骤 254

25.3.4 FatFs底层设备驱动函数 256

25.3.5 FatFs功能配置 261

25.3.6 FatFs功能测试 262

25.3.7 下载验证 265

25.4 FatFs功能使用实验 266

25.4.1 硬件设计 266

25.4.2 软件设计 266

25.4.3 下载验证 271

第二部分 提高篇 274

第26章 LCD——液晶显示器 274

26.1 显示器简介 274

26.1.1 液晶显示器 274

26.1.2 LED和OLED显示器 275

26.1.3 显示器的基本参数 276

26.2 液晶控制原理 276

26.2.1 液晶面板的控制信号 277

26.2.2 液晶数据传输时序 278

26.2.3 显存 280

26.3 秉火3.2 寸液晶屏简介 280

26.3.1 3.2 寸电阻触摸屏实物 280

26.3.2 ILI9341液晶控制器简介 281

26.3.3 液晶屏的信号线及8080时序 282

26.4 使用STM32的FSMC模拟8080接口时序 283

26.4.1 FSMC简介 283

26.4.2 FSMC的地址映射 285

26.4.3 FSMC控制异步NOR Flash存储器的时序 287

26.4.4 用FSMC模拟8080时序 288

26.5 NOR Flash存储器时序结构体 289

26.6 FSMC初始化结构体 291

26.7 FSMC——液晶显示实验 293

26.7.1 硬件设计 293

26.7.2 软件设计 295

26.7.3 下载验证 316

第27章 LCD——液晶显示中英文 317

27.1 字符编码 317

27.1.1 ASCII编码 317

27.1.2 中文编码 319

27.1.3 Unicode字符集和编码 322

27.1.4 UTF-32 323

27.1.5 UTF-16 323

27.1.6 UTF-8 324

27.1.7 BOM 325

27.2 什么是字模 325

27.2.1 字模的构成 325

27.2.2 字模显示原理 326

27.2.3 如何制作字模 327

27.2.4 字模寻址公式 328

27.2.5 存储字模文件 329

27.3 各种模式的液晶显示字符实验 329

27.3.1 硬件设计 329

27.3.2 显示ASCII编码的字符 330

27.3.3 显示GB2312编码的字符 338

27.3.4 显示任意大小的字符 346

27.3.5 下载验证 352

第28章 电阻触摸屏——触摸画板 353

28.1 触摸屏简介 353

28.1.1 电阻式触摸屏检测原理 354

28.1.2 电阻触摸屏控制芯片 355

28.1.3 电容式触摸屏检测原理 356

28.2 电阻触摸屏——触摸画板实验 357

28.2.1 硬件设计 357

28.2.2 软件设计 359

28.2.3 下载验证 375

第29章 ADC——电压采集 376

29.1 ADC简介 376

29.2 ADC功能框图剖析 376

29.3 ADC初始化结构体详解 381

29.4 独立模式单通道采集实验 382

29.4.1 硬件设计 382

29.4.2 软件设计 382

29.4.3 下载验证 387

29.5 独立模式多通道采集实验 387

29.5.1 硬件设计 387

29.5.2 软件设计 387

29.5.3 下载验证 391

29.6 双重ADC同步规则模式采集实验 391

29.6.1 硬件设计 392

29.6.2 软件设计 393

29.6.3 下载验证 397

第30章 TIM——基本定时器 398

30.1 定时器分类 398

30.2 基本定时器功能框图剖析 398

30.3 定时器初始化结构体详解 399

30.4 基本定时器定时实验 400

30.4.1 硬件设计 400

30.4.2 软件设计 400

30.4.3 下载验证 403

第31章 TIM——高级定时器 404

31.1 高级控制定时器 404

31.2 高级控制定时器功能框图剖析 405

31.3 输入捕获应用 413

31.3.1 测量脉宽或者频率 413

31.3.2 PWM输入模式 414

31.4 输出比较应用 415

31.5 定时器初始化结构体详解 417

31.6 PWM互补输出实验 420

31.6.1 硬件设计 420

31.6.2 软件设计 420

31.6.3 下载验证 424

31.7 脉宽测量输入捕获实验 424

31.7.1 硬件设计 424

31.7.2 软件设计 425

31.7.3 下载验证 429

31.8 PWM输入捕获实验 430

31.8.1 硬件设计 430

31.8.2 软件设计 430

31.8.3 下载验证 437

第32章 TIM——电容按键检测 438

32.1 电容按键原理 438

32.2 电容按键检测实验 439

32.2.1 硬件设计 440

32.2.2 软件设计 440

32.2.3 下载验证 446

第33章 IWDG——独立看门狗 447

33.1 IWDG简介 447

33.2 IWDG功能框图剖析 447

33.3 怎么用IWDG 448

33.4 IWDG超时实验 449

33.4.1 硬件设计 449

33.4.2 软件设计 449

33.4.3 下载验证 451

第34章 WWDG——窗口看门狗 452

34.1 WWDG简介 452

34.2 WWDG功能框图剖析 452

34.3 怎么用WWDG 454

34.4 WWDG喂狗实验 454

34.4.1 硬件设计 454

34.4.2 软件设计 454

34.4.3 下载验证 457

第35章 SDIO——SD卡读写测试 458

35.1 SDIO简介 458

35.2 SD卡物理结构 459

35.3 SDIO总线 460

35.3.1 总线拓扑 460

35.3.2 总线协议 461

35.3.3 命令 462

35.3.4 响应 465

35.4 SD卡的操作模式及切换 466

35.4.1 SD卡的操作模式 466

35.4.2 卡识别模式 467

35.4.3 数据传输模式 468

35.5 STM32的SDIO功能框图剖析 469

35.6 SDIO初始化结构体 473

35.7 SDIO命令初始化结构体 474

35.8 SDIO数据初始化结构体 475

35.9 SD卡读写测试实验 475

35.9.1 硬件设计 475

35.9.2 软件设计 476

35.9.3 下载验证 504

第36章 基于SD卡的FatFs文件系统 505

36.1 FatFs移植步骤 505

36.2 FatFs接口函数 507

36.3 FatFs功能测试 511

36.4 下载验证 514

第37章 电源管理——实现低功耗 515

37.1 STM32的电源管理简介 515

37.1.1 电源监控器 515

37.1.2 STM32的电源系统 516

37.1.3 STM32的功耗模式 517

37.2 电源管理相关的库函数及命令 519

37.2.1 配置PVD监控功能 519

37.2.2 WFI与WFE命令 520

37.2.3 进入停止模式 520

37.2.4 进入待机模式 521

37.3 PWR——睡眠模式实验 522

37.3.1 硬件设计 522

37.3.2 软件设计 522

37.3.3 下载验证 525

37.4 PWR——停止模式实验 525

37.4.1 硬件设计 525

37.4.2 软件设计 525

37.4.3 下载验证 529

37.5 PWR——待机模式实验 529

37.5.1 硬件设计 529

37.5.2 软件设计 529

37.5.3 下载验证 532

37.6 PWR——PVD电源监控实验 532

37.6.1 硬件设计 532

37.6.2 软件设计 534

37.6.3 下载验证 537

第38章 MDK的编译过程及文件类型全解 538

38.1 编译过程 538

38.1.1 编译过程简介 538

38.1.2 具体工程中的编译过程 539

38.2 程序的组成、存储与运行 540

38.2.1 CODE、RO、RW、ZI Data域及堆栈空间 540

38.2.2 程序的存储与运行 541

38.3 编译工具链 542

38.3.1 设置环境变量 542

38.3.2 armcc、armasm及armlink 544

38.3.3 armar、fromelf及用户指令 548

38.4 MDK工程的文件类型 549

38.4.1 uvprojx、uvoptx及uvguix工程文件 550

38.4.2 源文件 553

38.4.3 Output目录下生成的文件 553

38.4.4 Listing目录下的文件 574

38.4.5 sct分散加载文件的格式与应用 581

38.5 实验:自动分配变量到指定的SRAM空间 589

38.5.1 补充关于“__attribute__”关键字的说明 590

38.5.2 硬件设计 590

38.5.3 软件设计 590

38.5.4 下载验证 598

38.6 实验:优先使用内部SRAM并把堆区分配到指定空间 598

38.6.1 硬件设计 598

38.6.2 软件设计 598

38.6.3 下载验证 604

第39章 在SRAM中调试代码 605

39.1 在RAM中调试代码 605

39.2 STM32的启动方式 606

39.3 内部Flash的启动过程 607

39.4 实验:在内部SRAM中调试代码 609

39.4.1 硬件设计 609

39.4.2 软件设计 609

39.4.3 下载验证 618

第40章 读写内部Flash 619

40.1 STM32的内部Flash简介 619

40.2 对内部Flash的写入过程 621

40.3 查看工程的空间分布 622

40.4 操作内部Flash的库函数 624

40.5 实验:读写内部Flash 627

40.5.1 硬件设计 627

40.5.2 软件设计 627

40.5.3 下载验证 629

第41章 设置Flash的读写保护及解除 630

41.1 选项字节与读写保护 630

41.1.1 选项字节的内容 630

41.1.2 RDP读保护 632

41.1.3 WRP写保护 633

41.2 修改选项字节的过程 633

41.3 操作选项字节的库函数 633

41.4 实验:设置读写保护及解除 638

41.4.1 硬件设计 638

41.4.2 软件设计 638

41.4.3 下载验证 642

第42章 OV7725摄像头驱动 643

42.1 摄像头简介 643

42.1.1 数字摄像头与模拟摄像头的区别 643

42.1.2 CCD与CMOS的区别 644

42.2 OV7725摄像头 644

42.2.1 OV7725传感器简介 644

42.2.2 OV7725引脚及功能框图剖析 645

42.2.3 SCCB时序 646

42.2.4 OV7725的寄存器 647

42.2.5 像素数据输出时序 648

42.2.6 FIFO读写时序 649

42.2.7 摄像头的驱动原理 652

42.3 摄像头驱动实验 655

42.3.1 硬件设计 655

42.3.2 软件设计 656

42.3.3 下载验证 678

第43章 移植Huawei LiteOS到STM32 679

43.1 Huawei LiteOS简介 679

43.2 Huawei LiteOS内核移植 680

43.2.1 Huawei LiteOS内核简介 680

43.2.2 内核源代码简介 682

43.2.3 内核移植详细介绍 683

43.2.4 Huawei LiteOS多任务编程 691

精品推荐