《STM32F0实战 基于HAL库开发》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:高显生编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111612964
  • 页数:744 页
图书介绍:作为STM32单片机的入门者,往往在从寄存器开发还是从固件库开发选择上纠结不定,本书从市场上非常火热的F0系列微控制器入手,利用意法公司的一款全新的开发软件STM32CubeMX作为项目建立和代码初始化工具,快速生成F0系列的开发环境,并在MDK-ARM软件上对代码进行进一步的编辑修改,直至生成最终的开发项目。本书将使用STM32CubeMX软件自带的HAL固件库来开发,书内附HAL库详解,HAL库不同于以往的标准外设库,是意法公司最新推出的替代标准外设库的产品。

第一篇 系统架构 2

第1章“芯”系ARM 2

1.1强劲的ARM芯 2

1.1.1最成功的科技公司 2

1.1.2 ARMv6-M架构 3

1.1.3 Cortex-M0处理器简介 3

1.1.4 Cortex-M0处理器的特点 5

1.1.5 RISC架构 6

1.1.6 AMBA总线 6

1.1.7微控制器软件接口标准(CMSIS ) 7

1.2 STM32系列微控制器 9

1.2.1 STM32微控制器家族 9

1.2.2 STM32的命名规则 9

1.2.3 STM32F0系列微控制器功能概述 13

第2章 开发环境 17

2.1软件开发工具 17

2.1.1 MDK-ARM集成开发环境 18

2.1.2安装MDK-ARM软件 21

2.1.3 STM32CubeMX软件 27

2.1.4安装STM32CubeMX软件 34

2.2硬件开发工具 46

2.2.1仿真/编程器 47

2.2.2 STM32系统板 51

2.3项目建立 52

2.3.1新建开发项目 52

2.3.2查看项目文件 62

2.3.3打开项目 64

2.3.4查看项目属性 69

2.3.5编译项目 73

第3章GPIO 76

3.1 GPIO概述 76

3.1.1 GPIO的功能 76

3.1.2 GPIO的位结构 78

3.1.3 GPIO的特殊功能 80

3.1.4 GPIO的寄存器分类 82

3.2 GPIO函数 82

3.2.1 GPIO类型定义 82

3.2.2 GPIO常量定义 83

3.2.3 GPIO函数定义 84

3.3 GPIO应用实例 86

3.3.1生成开发项目 86

3.3.2主程序文件结构解析 90

3.3.3外设初始化过程分析 94

第4章HAL库 98

4.1 HAL库结构 98

4.1.1 HAL库的特点 98

4.1.2 HAL库的构成 99

4.1.3 HAL库用户应用程序 99

4.2 HAL库文件 101

4.2.1 HAL库头文件 101

4.2.2 HAL库源文件 104

第5章 系统配置 107

5.1系统架构 107

5.1.1总线结构 107

5.1.2存储器的组织 108

5.1.3启动配置 108

5.2 Flash存储器 110

5.2.1 Flash的读操作 110

5.2.2 Flash的写和擦除操作 111

5.2.3 Flash读保护 113

5.2.4 Flash写保护 114

5.2.5 Flash中断 114

5.2.6 CRC计算单元 114

5.3选项字节 115

5.3.1选项字节的格式 115

5.3.2选项字节编程 118

5.4 Flash函数 119

5.4.1 Flash类型定义 119

5.4.2 Flash常量定义 120

5.4.3 Flash函数定义 121

5.5 CRC函数 128

5.5.1 CRC类型定义 128

5.5.2 CRC常量定义 129

5.5.3 CRC函数定义 131

第6章 时钟 135

6.1概述 135

6.1.1时钟树的结构 135

6.1.2时钟源 137

6.1.3时钟安全 140

6.1.4时钟应用 140

6.1.5低功耗模式下的时钟 141

6.1.6复位 141

6.2 RCC函数 143

6.2.1 RCC类型定义 143

6.2.2 RCC常量定义 145

6.2.3 RCC函数定义 152

6.3时钟控制实例 159

第7章 电源控制 162

7.1供电管理 162

7.1.1供电引脚 162

7.1.2上电复位和掉电复位 165

7.1.3可编程电压检测器 166

7.2低功耗模式 166

7.2.1低功耗模式的分类 166

7.2.2睡眠模式 167

7.2.3停机模式 168

7.2.4待机模式 169

7.2.5自动唤醒 170

7.3电源控制函数 170

7.3.1电源控制类型定义 170

7.3.2电源控制常量定义 171

7.3.3电源控制函数定义 172

7.4低功耗模式应用实例 178

7.4.1从停机模式唤醒 178

7.4.2从待机模式唤醒 180

第8章DMA控制器 183

8.1 DMA概述 183

8.1.1 DMA控制器内部结构 183

8.1.2 DMA的处理过程 183

8.1.3 DMA中断 186

8.1.4 DMA请求映射 186

8.2 DMA函数 189

8.2.1 DMA类型定义 189

8.2.2 DMA常量定义 190

8.2.3 DMA函数定义 191

8.3 DMA应用实例 194

第9章 异常 198

9.1 Cortex-M0的异常处理 198

9.1.1异常的特点 198

9.1.2嵌套向量中断控制器 201

9.1.3中断的使能 201

9.1.4中断请求的挂起和清除 202

9.1.5中断优先级控制 204

9.1.6 SysTick定时器 204

9.2扩展中断和事件控制器(EXTI) 207

9.2.1事件线概述 207

9.2.2事件线的控制逻辑 208

9.2.3事件线的配置方法 210

9.2.4 EXTI唤醒 210

9.2.5中断服务程序(ISR) 210

9.3异常相关函数 212

9.3.1异常类型定义 212

9.3.2异常常量定义 213

9.3.3异常函数定义 213

9.4 EXTI应用实例 219

第二篇 外设模块 224

第10章 模拟-数字转换器 224

10.1 ADC模块概述 224

10.1.1 ADC的内部结构 224

10.1.2 ADC校准 225

10.1.3 ADC的启动和关闭 226

10.1.4 ADC时钟 228

10.2 ADC功能配置 229

10.2.1 ADC的基础配置 229

10.2.2 ADC的转换模式 230

10.2.3 A/D转换的启动和停止 231

10.2.4 A/D转换时序 232

10.2.5 ADC过冲 233

10.2.6管理转换数据 235

10.2.7 ADC的低功耗特性 235

10.2.8模拟看门狗 237

10.2.9 ADC的内部通道转换 238

10.2.10 ADC中断 240

10.3 ADC函数 241

10.3.1 ADC类型定义 241

10.3.2 ADC常量定义 242

10.3.3 ADC函数定义 246

10.4 ADC的应用实例 253

10.4.1数字显示电压值 254

10.4.2读取温度传感器 256

第11章 数字-模拟转换器 259

11.1 DAC模块概述 259

11.1.1 DAC的内部结构 259

11.1.2 DAC数据格式 260

11.1.3 DAC通道转换 261

11.1.4 DAC触发选择 262

11.1.5 DAC的DMA请求 262

11.2 DAC波形生成 263

11.2.1噪声波生成 263

11.2.2三角波生成 264

11.2.3 DAC双通道转换 264

11.3 DAC函数 266

11.3.1 DAC类型定义 266

11.3.2 DAC常量定义 266

11.3.3 DAC函数定义 267

11.4 DAC应用实例 277

第12章 模拟比较器 281

12.1模拟比较器概述 281

12.1.1模拟比较器的功能 281

12.1.2模拟比较器的内部结构 281

12.2模拟比较器的函数 282

12.2.1模拟比较器类型定义 282

12.2.2模拟比较器常量定义 283

12.2.3模拟比较器函数定义 285

12.3模拟比较器应用实例 288

第13章 实时时钟 291

13.1 RTC概述 291

13.1.1 RTC主要特性 291

13.1.2时钟和日历 294

13.1.3可编程报警 294

13.2 RTC操作 295

13.2.1 RTC初始化 295

13.2.2读取日历寄存器 296

13.2.3 RTC同步 297

13.2.4 RTC参考时钟检测 298

13.2.5 RTC平滑数字校准 298

13.2.6时间戳 299

13.2.7侵入检测 299

13.2.8时钟输出 300

13.2.9 RTC低功耗模式 301

13.2.10 RTC中断 301

13.3 RTC函数 302

13.3.1 RTC类型定义 302

13.3.2 RTC常量定义 305

13.3.3 RTC函数定义 310

13.4 RTC应用实例 326

第14章 定时器 329

14.1定时器概述 329

14.1.1定时器配置 329

14.1.2 TIM1的功能 330

14.1.3计数时钟 336

14.2捕捉/比较通道 338

14.2.1捕捉/比较通道结构 338

14.2.2输入捕捉模式 340

14.2.3 PWM输入模式 341

14.2.4强制输出模式 342

14.2.5输出比较模式 342

14.2.6 PWM模式 343

14.2.7互补输出和死区控制 345

14.2.8刹车及清除参考信号 347

14.2.9单脉冲模式 350

14.2.10外部触发同步 352

14.3定时器函数 355

14.3.1定时器类型定义 355

14.3.2定时器常量定义 359

14.3.3定时器函数定义 366

14.4 TIM 1应用实例 417

14.4.1测量信号周期 418

14.4.2生成PWM信号 420

14.4.3体验PWM输入模式 422

第15章 看门狗 425

15.1独立看门狗 425

15.1.1 IWDG的功能 425

15.1.2特殊状态下的IWDG 427

15.2窗口看门狗 427

15.2.1 WWDG的内部结构和时间窗口 427

15.2.2 WWDG的高级功能 428

15.3看门狗函数 429

15.3.1看门狗类型定义 429

15.3.2看门狗常量定义 430

15.3.3看门狗函数定义 430

15.4 IWDG应用实例 433

第16章I2C总线接口 436

16.1 I2C模块概述 436

16.1.1 I2C模块的功能 436

16.1.2 I2C 工作模式 437

16.1.3 I2C的初始化 439

16.1.4数据传输 442

16.2 I2C从机模式 444

16.2.1 I2C从机初始化 444

16.2.2从机时钟延长 444

16.2.3从机发送 445

16.2.4从机接收 448

16.3 I2C主模式 449

16.3.1主机接收 450

16.3.2主机发送 452

16.4 SMBus 454

16.4.1 SMBus的特点 454

16.4.2 SMBus的功能 455

16.4.3 SMBus初始化 457

16.4.4 SMBus从机模式 458

16.5 I2C模块的控制功能 462

16.5.1 I2C低功耗模式 462

16.5.2错误条件 462

16.5.3 DMA请求 463

16.5.4 I2C中断 464

16.6 I2C函数 465

16.6.1 I2C类型定义 465

16.6.2 I2C常量定义 468

16.6.3 I2C函数定义 472

16.7 I2C应用实例 510

第17章SPI总线接口 513

17.1 SPI概述 513

17.1.1 SPI模块的特点 513

17.1.2 SPI的工作方式 514

17.1.3 SPI的主从选择 516

17.1.4 SPI的帧格式 518

17.2 SPI通信 519

17.2.1 SPI的通信流程 519

17.2.2 SPI的状态标志 523

17.2.3 SPI的错误标志 523

17.2.4 NSS脉冲模式 524

17.2.5 SPI的CRC计算 525

17.2.6 SPI中断 525

17.3 SPI函数 526

17.3.1 SPI类型定义 526

17.3.2 SPI常量定义 528

17.3.3 SPI函数定义 532

17.4 SPI的应用实例 554

第18章 通用同步异步收发器 557

18.1 USART概述 557

18.1.1 USART的结构 557

18.1.2 USART的帧格式 559

18.1.3 USART发送器 559

18.1.4 USART接收器 563

18.1.5波特率 564

18.2 USART通信 566

18.2.1多机通信 566

18.2.2校验控制 567

18.2.3 USART同步模式 568

18.2.4利用DMA实现连续通信 568

18.2.5 USART的控制功能 571

18.2.6 USART的中断 573

18.3 USART函数 575

18.3.1 UART类型定义 575

18.3.2 UART常量定义 581

18.3.3 USART函数定义 590

18.4 USART应用实例 623

第19章 触摸传感控制器 626

19.1 TSC概述 626

19.1.1 TSC的内部结构 626

19.1.2表面电荷迁移检测原理 628

19.1.3表面电荷迁移采集顺序 628

19.1.4扩展频谱和最大计数错误 630

19.1.5 TSC的I/O模式 630

19.1.6 TSC采集过程 631

19.1.7 TSC的低功耗模式和中断 632

19.2 TSC函数 632

19.2.1 TSC类型定义 632

19.2.2 TSC常量定义 633

19.2.3 TSC函数定义 636

19.3 TSC 应用实例 641

第20章 控制器局域网 644

20.1 CAN总线 644

20.1.1 显性与隐性 644

20.1.2报文 645

20.2 bxCAN模块 648

20.2.1 bxCAN的结构 648

20.2.2 bxCAN的工作模式 650

20.2.3 bxCAN的测试模式 651

20.3 bxCAN通信 652

20.3.1发送管理 652

20.3.2接收管理 653

20.3.3标识符过滤 655

20.3.4报文存储 659

20.3.5位时间 659

20.3.6 bxCAN中断 660

20.4 bxCAN函数 662

20.4.1 bxCAN类型定义 662

20.4.2 bxCAN常量定义 664

20.4.3 bxCAN函数定义 666

20.5 bxCAN应用实例 671

第21章 通用串行总线 674

21.1 USB概述 674

21.1.1 USB总线结构 674

21.1.2 USB端点 675

21.1.3 USB通信管道 676

21.1.4包的字段格式 676

21.1.5 USB的包类型 677

21.1.6 USB的事务处理 679

21.1.7 USB数据传输的类型 680

21.1.8 USB设备描述符 681

21.1.9标准设备请求 683

21.1.10 USB的设备状态 687

21.1.11 USB总线的枚举过程 687

21.2 USB模块 689

21.2.1 USB模块的结构 689

21.2.2 USB模块数据传输 691

21.3 USB总线编程 691

21.3.1 USB复位操作 692

21.3.2分组缓冲区 692

21.3.3端点初始化 693

21.3.4 IN分组 693

21.3.5 OUT和SETUP分组 694

21.3.6控制传输 695

21.3.7双缓冲端点 696

21.3.8同步传输 697

21.3.9挂起/恢复事件 698

21.4 USB函数 699

21.4.1 USB类型定义 699

21.4.2 USB常量定义 701

21.4.3 USB函数定义 701

21.5 USB编程实例 711

附录 719

附录A STM32F072VBT6系统板电路原理图 720

附录B STM32F072VBT6全功能开发板 721

附录C STM32F0核心板、显示模块及编程器 722

附录D STM32F072VBT6微控制器引脚定义 723

附录E STM32F072VBT6微控制器引脚功能 724

附录F STM32F072VBT6微控制器端口复用功能映射表 731

附录G STM32F072VBT6微控制器存储器映像和外设寄存器编址 735

附录H寄存器特性缩写列表 738

附录I术语和缩写对照表 739

附录J本书源代码清单及下载链接 741