本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
书[0名0]: | STM32F0实战:基于HAL库开发|8054359 |
图书定价: | 129元 |
图书作者: | 高显生 |
出版社: | [1机1]械工业出版社 |
出版日期: | 2018/11/28 0:00:00 |
ISBN号: | 9787111612964 |
开本: | 16开 |
页数: | 753 |
版次: | 1-1 |
作者简介 |
高显生 编著:暂无简介 |
内容简介 |
作为STM32单片[1机1]的入门者,往往在从寄存器开发还是从固[亻牛]库开发上纠结不定,本书将从市场上非常[0畅0]销的F0系列微控制器入手,利用意[0法0]公司[亲斤]近推出的一款全[亲斤]的开发软[亻牛]—STM32CubeMX做为项目建立和代码初始化工具,快速生成F0系列的开发环境,并在MDK-ARM软[亻牛]上对代码进行进一步的编辑修改,直至生成[z1u1i]终的开发项目。 本书将使用STM32CubeMX软[亻牛]自带的HAL固[亻牛]库来开发,书内附HAL库详解,HAL库不同与以往的标准外设库,是意[0法0]公司[z1u1i][亲斤]推出的替代标准外设库的产[0品0]。 |
目录 |
前言 [0第0]一篇 系统架构 [0第0]1章 “芯”系ARM 2 1.1 强劲的ARM芯 2 1.1.1 [z1u1i]成功的科技公司 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.6AMBA总线 6 1.1.7微控制器软[亻牛]接口标准(CMSIS) 7 1.2 STM32系列微控制器 9 1.2.1 STM32微控制器家族 9 1.2.2 STM32的命[0名0]规则 9 1.2.3STM32F0系列微控制器功能概述 13 [0第0]2章 开发环境 17 2.1 软[亻牛]开发工具 17 2.1.1MDK-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 [0第0]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 [1主1]程序文[亻牛]结构解析 90 3.3.3 外设初始化过程分析 94 [0第0]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 [0第0]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 [0第0]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 [0第0]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 停[1机1]模式 168 7.2.4 待[1机1]模式 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 从停[1机1]模式唤醒 178 7.4.2 从待[1机1]模式唤醒 180 [0第0]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 [0第0]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 中断[0优0]先级控制 204 9.1.6 SysTick定时器 204 9.2扩展中断和事[亻牛]控制器(EXTI) 207 9.2.1 事[亻牛]线概述 207 9.2.2 事[亻牛]线的控制逻辑 208 9.2.3 事[亻牛]线的配置方[0法0] 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 [0第0]二篇 外设模块 [0第0]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 模拟看门[dog] 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 [0第0]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[0双0]通道转换 264 11.3 DAC函数 266 11.3.1 DAC类型定义 266 11.3.2 DAC常量定义 266 11.3.3 DAC函数定义 267 11.4 DAC应用实例 277 [0第0]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 [0第0]13章 实时时钟 291 13.1 RTC概述 291 13.1.1 RTC[1主1]要特性 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 [0第0]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 TIM1应用实例 417 14.4.1 测量信号周期 418 14.4.2 生成PWM信号 420 14.4.3 体验PWM输入模式 422 [0第0]15章 看门[dog] 425 15.1 [0独0]立看门[dog] 425 15.1.1 IWDG的功能 425 15.1.2 特殊状态下的IWDG 427 15.2 窗口看门[dog] 427 15.2.1WWDG的内部结构和时间窗口 427 15.2.2 WWDG的高级功能 428 15.3 看门[dog]函数 429 15.3.1 看门[dog]类型定义 429 15.3.2 看门[dog]常量定义 430 15.3.3 看门[dog]函数定义 430 15.4 IWDG应用实例 433 [0第0]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从[1机1]模式 444 16.2.1 I2C从[1机1]初始化 444 16.2.2 从[1机1]时钟延长 444 16.2.3 从[1机1]发送 445 16.2.4 从[1机1]接收 448 16.3 I2C[1主1]模式 449 16.3.1 [1主1][1机1]接收 450 16.3.2 [1主1][1机1]发送 452 16.4 SMBus 454 16.4.1 SMBus的特点 454 16.4.2 SMBus的功能 455 16.4.3 SMBus初始化 457 16.4.4 SMBus从[1机1]模式 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 [0第0]17章 SPI总线接口 513 17.1 SPI概述 513 17.1.1 SPI模块的特点 513 17.1.2 SPI的工作方式 514 17.1.3 SPI的[1主1]从选择 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.5SPI的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 [0第0]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 多[1机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 [0第0]19章 触摸传感控制器 626 19.1 TSC概述 626 19.1.1 TSC的内部结构 626 19.1.2表[mian]电荷迁移检测原理 628 19.1.3表[mian]电荷迁移采集顺序 628 19.1.4扩展频谱和[z1u1i][0大0]计数错误 630 19.1.5 TSC的I/O模式 630 19.1.6 TSC采集过程 631 19.1.7TSC的低功耗模式和中断 632 19.2 TSC函数 632 19.2.1 TSC类型定义 632 19.2.2 TSC常量定义 633 19.2.3 TSC函数定义 636 19.3 TSC应用实例 641 [0第0]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 [0第0]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 [0双0]缓冲端点 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 附录ASTM32F072VBT6系统板电路原理图 720 附录BSTM32F072VBT6全功能开发板 721 附录CSTM32F0核心板、显示模块及编程器 722 附录DSTM32F072VBT6微控制器引脚定义 723 附录ESTM32F072VBT6微控制器引脚功能 724 附录FSTM32F072VBT6微控制器端口复用功能映射表 731 附录GSTM32F072VBT6微控制器存储器映像和外设寄存器编址 735 附录H寄存器特性缩写列表 738 附录I术语和缩写对照表 739 附录J本书源代码清单及下载链接 741 |
编辑推荐 |
本书基于图形化软[亻牛]平台STM32CubeMX生成初始代码。 涵盖ARM Cortex内核的STM32F072VBT6微控制器[0大0]部分外设。 使用C语言及HAL固[亻牛]库开发,配套源代码,由浅入深,快速入门。 |