当前位置:主页 > 书籍配套资源 > STM32F0配套资源
《STM32F0实战:基于HAL库开发》代码资源

《STM32F0实战:基于HAL库开发》代码资源

  • 更新:2022-02-04
  • 大小:151 MB
  • 类别:STM32F0
  • 作者:高显生
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

作为STM32单片机的入门者,往往在从寄存器开发还是从固件库开发上纠结不定,本书将从市场上非常畅销的F0系列微控制器入手,利用意法公司新近推出的一款全新的开发软件—STM32CubeMX做为项目建立和代码初始化工具,快速生成F0系列的开发环境,并在MDK-ARM软件上对代码进行进一步的编辑修改,直至生成最终的开发项目。

本书将使用STM32CubeMX软件自带的HAL固件库来开发,书内附HAL库详解,HAL库不同与以往的标准外设库,是意法公司最新推出的替代标准外设库的产品。

封面图

目录

  • 前言
  • 第一篇系统架构
  • 第1章“芯”系ARM 2
  • 1.1强劲的ARM芯 2
  • 1.1.1最成功的科技公司 2
  • 1.1.2ARMv6-M架构 3
  • 1.1.3Cortex-M0处理器简介 3
  • 1.1.4Cortex-M0处理器的特点 5
  • 1.1.5RISC架构 6
  • 1.1.6AMBA总线 6
  • 1.1.7微控制器软件接口标准(CMSIS) 7
  • 1.2STM32系列微控制器 9
  • 1.2.1STM32微控制器家族 9
  • 1.2.2STM32的命名规则 9
  • 1.2.3STM32F0系列微控制器功能概述 13
  • 第2章开发环境 17
  • 2.1软件开发工具 17
  • 2.1.1MDK-ARM集成开发环境 18
  • 2.1.2安装MDK-ARM软件 21
  • 2.1.3STM32CubeMX软件 27
  • 2.1.4安装STM32CubeMX软件 34
  • 2.2硬件开发工具 46
  • 2.2.1仿真/编程器 47
  • 2.2.2STM32系统板 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.1GPIO概述 76
  • 3.1.1GPIO的功能 76
  • 3.1.2GPIO的位结构 78
  • 3.1.3GPIO的特殊功能 80
  • 3.1.4GPIO的寄存器分类 82
  • 3.2GPIO函数 82
  • 3.2.1GPIO类型定义 82
  • 3.2.2GPIO常量定义 83
  • 3.2.3GPIO函数定义 84
  • 3.3GPIO应用实例 86
  • 3.3.1生成开发项目 86
  • 3.3.2主程序文件结构解析 90
  • 3.3.3外设初始化过程分析 94
  • 第4章HAL库 98
  • 4.1HAL库结构 98
  • 4.1.1HAL库的特点 98
  • 4.1.2HAL库的构成 99
  • 4.1.3HAL库用户应用程序 99
  • 4.2HAL库文件 101
  • 4.2.1HAL库头文件 101
  • 4.2.2HAL库源文件 104
  • 第5章系统配置 107
  • 5.1系统架构 107
  • 5.1.1总线结构 107
  • 5.1.2存储器的组织 108
  • 5.1.3启动配置 108
  • 5.2Flash存储器 110
  • 5.2.1Flash的读操作 110
  • 5.2.2Flash的写和擦除操作 111
  • 5.2.3Flash读保护 113
  • 5.2.4Flash写保护 114
  • 5.2.5Flash中断 114
  • 5.2.6CRC计算单元 114
  • 5.3选项字节 115
  • 5.3.1选项字节的格式 115
  • 5.3.2选项字节编程 118
  • 5.4Flash函数 119
  • 5.4.1Flash类型定义 119
  • 5.4.2Flash常量定义 120
  • 5.4.3Flash函数定义 121
  • 5.5CRC函数 128
  • 5.5.1CRC类型定义 128
  • 5.5.2CRC常量定义 129
  • 5.5.3CRC函数定义 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.2RCC函数 143
  • 6.2.1RCC类型定义 143
  • 6.2.2RCC常量定义 145
  • 6.2.3RCC函数定义 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.1DMA概述 183
  • 8.1.1DMA控制器内部结构 183
  • 8.1.2DMA的处理过程 183
  • 8.1.3DMA中断 186
  • 8.1.4DMA请求映射 186
  • 8.2DMA函数 189
  • 8.2.1DMA类型定义 189
  • 8.2.2DMA常量定义 190
  • 8.2.3DMA函数定义 191
  • 8.3DMA应用实例 194
  • 第9章异常 198
  • 9.1Cortex-M0的异常处理 198
  • 9.1.1异常的特点 198
  • 9.1.2嵌套向量中断控制器 201
  • 9.1.3中断的使能 201
  • 9.1.4中断请求的挂起和清除 202
  • 9.1.5中断优先级控制 204
  • 9.1.6SysTick定时器 204
  • 9.2扩展中断和事件控制器(EXTI) 207
  • 9.2.1事件线概述 207
  • 9.2.2事件线的控制逻辑 208
  • 9.2.3事件线的配置方法 210
  • 9.2.4EXTI唤醒 210
  • 9.2.5中断服务程序(ISR) 210
  • 9.3异常相关函数 212
  • 9.3.1异常类型定义 212
  • 9.3.2异常常量定义 213
  • 9.3.3异常函数定义 213
  • 9.4EXTI应用实例 219
  • 第二篇外设模块
  • 第10章模拟-数字转换器 224
  • 10.1ADC模块概述 224
  • 10.1.1ADC的内部结构 224
  • 10.1.2ADC校准 225
  • 10.1.3ADC的启动和关闭 226
  • 10.1.4ADC时钟 228
  • 10.2ADC功能配置 229
  • 10.2.1ADC的基础配置 229
  • 10.2.2ADC的转换模式 230
  • 10.2.3A/D转换的启动和停止 231
  • 10.2.4A/D转换时序 232
  • 10.2.5ADC过冲 233
  • 10.2.6管理转换数据 235
  • 10.2.7ADC的低功耗特性 235
  • 10.2.8模拟看门狗 237
  • 10.2.9ADC的内部通道转换 238
  • 10.2.10ADC中断 240
  • 10.3ADC函数 241
  • 10.3.1ADC类型定义 241
  • 10.3.2ADC常量定义 242
  • 10.3.3ADC函数定义 246
  • 10.4ADC的应用实例 253
  • 10.4.1数字显示电压值 254
  • 10.4.2读取温度传感器 256
  • 第11章数字-模拟转换器 259
  • 11.1DAC模块概述 259
  • 11.1.1DAC的内部结构 259
  • 11.1.2DAC数据格式 260
  • 11.1.3DAC通道转换 261
  • 11.1.4DAC触发选择 262
  • 11.1.5DAC的DMA请求 262
  • 11.2DAC波形生成 263
  • 11.2.1噪声波生成 263
  • 11.2.2三角波生成 264
  • 11.2.3DAC双通道转换 264
  • 11.3DAC函数 266
  • 11.3.1DAC类型定义 266
  • 11.3.2DAC常量定义 266
  • 11.3.3DAC函数定义 267
  • 11.4DAC应用实例 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.1RTC概述 291
  • 13.1.1RTC主要特性 291
  • 13.1.2时钟和日历 294
  • 13.1.3可编程报警 294
  • 13.2RTC操作 295
  • 13.2.1RTC初始化 295
  • 13.2.2读取日历寄存器 296
  • 13.2.3RTC同步 297
  • 13.2.4RTC参考时钟检测 298
  • 13.2.5RTC平滑数字校准 298
  • 13.2.6时间戳 299
  • 13.2.7侵入检测 299
  • 13.2.8时钟输出 300
  • 13.2.9RTC低功耗模式 301
  • 13.2.10RTC中断 301
  • 13.3RTC函数 302
  • 13.3.1RTC类型定义 302
  • 13.3.2RTC常量定义 305
  • 13.3.3RTC函数定义 310
  • 13.4RTC应用实例 326
  • 第14章定时器 329
  • 14.1定时器概述 329
  • 14.1.1定时器配置 329
  • 14.1.2TIM1的功能 330
  • 14.1.3计数时钟 336
  • 14.2捕捉/比较通道 338
  • 14.2.1捕捉/比较通道结构 338
  • 14.2.2输入捕捉模式 340
  • 14.2.3PWM输入模式 341
  • 14.2.4强制输出模式 342
  • 14.2.5输出比较模式 342
  • 14.2.6PWM模式 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.4TIM1应用实例 417
  • 14.4.1测量信号周期 418
  • 14.4.2生成PWM信号 420
  • 14.4.3体验PWM输入模式 422
  • 第15章看门狗 425
  • 15.1独立看门狗 425
  • 15.1.1IWDG的功能 425
  • 15.1.2特殊状态下的IWDG 427
  • 15.2窗口看门狗 427
  • 15.2.1WWDG的内部结构和时间窗口 427
  • 15.2.2WWDG的高级功能 428
  • 15.3看门狗函数 429
  • 15.3.1看门狗类型定义 429
  • 15.3.2看门狗常量定义 430
  • 15.3.3看门狗函数定义 430
  • 15.4IWDG应用实例 433
  • 第16章I2C总线接口 436
  • 16.1I2C模块概述 436
  • 16.1.1I2C模块的功能 436
  • 16.1.2I2C工作模式 437
  • 16.1.3I2C的初始化 439
  • 16.1.4数据传输 442
  • 16.2I2C从机模式 444
  • 16.2.1I2C从机初始化 444
  • 16.2.2从机时钟延长 444
  • 16.2.3从机发送 445
  • 16.2.4从机接收 448
  • 16.3I2C主模式 449
  • 16.3.1主机接收 450
  • 16.3.2主机发送 452
  • 16.4SMBus 454
  • 16.4.1SMBus的特点 454
  • 16.4.2SMBus的功能 455
  • 16.4.3SMBus初始化 457
  • 16.4.4SMBus从机模式 458
  • 16.5I2C模块的控制功能 462
  • 16.5.1I2C低功耗模式 462
  • 16.5.2错误条件 462
  • 16.5.3DMA请求 463
  • 16.5.4I2C中断 464
  • 16.6I2C函数 465
  • 16.6.1I2C类型定义 465
  • 16.6.2I2C常量定义 468
  • 16.6.3I2C函数定义 472
  • 16.7I2C应用实例 510
  • 第17章SPI总线接口 513
  • 17.1SPI概述 513
  • 17.1.1SPI模块的特点 513
  • 17.1.2SPI的工作方式 514
  • 17.1.3SPI的主从选择 516
  • 17.1.4SPI的帧格式 518
  • 17.2SPI通信 519
  • 17.2.1SPI的通信流程 519
  • 17.2.2SPI的状态标志 523
  • 17.2.3SPI的错误标志 523
  • 17.2.4NSS脉冲模式 524
  • 17.2.5SPI的CRC计算 525
  • 17.2.6SPI中断 525
  • 17.3SPI函数 526
  • 17.3.1SPI类型定义 526
  • 17.3.2SPI常量定义 528
  • 17.3.3SPI函数定义 532
  • 17.4SPI的应用实例 554
  • 第18章通用同步异步收发器 557
  • 18.1USART概述 557
  • 18.1.1USART的结构 557
  • 18.1.2USART的帧格式 559
  • 18.1.3USART发送器 559
  • 18.1.4USART接收器 563
  • 18.1.5波特率 564
  • 18.2USART通信 566
  • 18.2.1多机通信 566
  • 18.2.2校验控制 567
  • 18.2.3USART同步模式 568
  • 18.2.4利用DMA实现连续通信 568
  • 18.2.5USART的控制功能 571
  • 18.2.6USART的中断 573
  • 18.3USART函数 575
  • 18.3.1UART类型定义 575
  • 18.3.2UART常量定义 581
  • 18.3.3USART函数定义 590
  • 18.4USART应用实例 623
  • 第19章触摸传感控制器 626
  • 19.1TSC概述 626
  • 19.1.1TSC的内部结构 626
  • 19.1.2表面电荷迁移检测原理 628
  • 19.1.3表面电荷迁移采集顺序 628
  • 19.1.4扩展频谱和最大计数错误 630
  • 19.1.5TSC的I/O模式 630
  • 19.1.6TSC采集过程 631
  • 19.1.7TSC的低功耗模式和中断 632
  • 19.2TSC函数 632
  • 19.2.1TSC类型定义 632
  • 19.2.2TSC常量定义 633
  • 19.2.3TSC函数定义 636
  • 19.3TSC应用实例 641
  • 第20章控制器局域网 644
  • 20.1CAN总线 644
  • 20.1.1显性与隐性 644
  • 20.1.2报文 645
  • 20.2bxCAN模块 648
  • 20.2.1bxCAN的结构 648
  • 20.2.2bxCAN的工作模式 650
  • 20.2.3bxCAN的测试模式 651
  • 20.3bxCAN通信 652
  • 20.3.1发送管理 652
  • 20.3.2接收管理 653
  • 20.3.3标识符过滤 655
  • 20.3.4报文存储 659
  • 20.3.5位时间 659
  • 20.3.6bxCAN中断 660
  • 20.4bxCAN函数 662
  • 20.4.1bxCAN类型定义 662
  • 20.4.2bxCAN常量定义 664
  • 20.4.3bxCAN函数定义 666
  • 20.5bxCAN应用实例 671
  • 第21章通用串行总线 674
  • 21.1USB概述 674
  • 21.1.1USB总线结构 674
  • 21.1.2USB端点 675
  • 21.1.3USB通信管道 676
  • 21.1.4包的字段格式 676
  • 21.1.5USB的包类型 677
  • 21.1.6USB的事务处理 679
  • 21.1.7USB数据传输的类型 680
  • 21.1.8USB设备描述符 681
  • 21.1.9标准设备请求 683
  • 21.1.10USB的设备状态 687
  • 21.1.11USB总线的枚举过程 687
  • 21.2USB模块 689
  • 21.2.1USB模块的结构 689
  • 21.2.2USB模块数据传输 691
  • 21.3USB总线编程 691
  • 21.3.1USB复位操作 692
  • 21.3.2分组缓冲区 692
  • 21.3.3端点初始化 693
  • 21.3.4IN分组 693
  • 21.3.5OUT和SETUP分组 694
  • 21.3.6控制传输 695
  • 21.3.7双缓冲端点 696
  • 21.3.8同步传输 697
  • 21.3.9挂起/恢复事件 698
  • 21.4USB函数 699
  • 21.4.1USB类型定义 699
  • 21.4.2USB常量定义 701
  • 21.4.3USB函数定义 701
  • 21.5USB编程实例 711
  • 附录 719
  • 附录ASTM32F072VBT6系统板电路原理图 720
  • 附录BSTM32F072VBT6全功能开发板 721
  • 附录CSTM32F0核心板、显示模块及编程器 722
  • 附录DSTM32F072VBT6微控制器引脚定义 723
  • 附录ESTM32F072VBT6微控制器引脚功能 724
  • 附录FSTM32F072VBT6微控制器端口复用功能映射表 731
  • 附录GSTM32F072VBT6微控制器存储器映像和外设寄存器编址 735
  • 附录H寄存器特性缩写列表 738
  • 附录I术语和缩写对照表 739
  • 附录J本书源代码清单及下载链接 741

资源下载

资源下载地址1:https://pan.baidu.com/s/1ffCwbRnHjKyNuVHfB8i0mA

相关资源

网友留言