STM32库开发实战指南(第2版):基于STM32F103

STM32库开发实战指南(第2版):基于STM32F103 pdf epub mobi txt 电子书 下载 2025

刘火良 杨森 著
图书标签:
  • STM32
  • 嵌入式
  • 单片机
  • 库函数
  • F103
  • 开发实战
  • C语言
  • HAL库
  • ARM
  • 教程
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111565314
版次:2
商品编码:12104965
品牌:机工出版
包装:平装
丛书名: 电子与嵌入式系统设计丛书
开本:16开
出版时间:2017-06-01
用纸:胶版纸
页数:693

具体描述

内容简介

本书主要介绍STM32的库函数,以及如何使用库的方式进行开发,使初学者能够在此基础上迅速入门,掌握STM32的开发方法。本书基于ARM—CortexM3内核的STM32F103芯片,紧紧围绕“库”展开,系统地讲述了STM32固件库的原理、使用方法。

作者简介

刘火良,网名野火,是目前国内大的电子工程师社区阿莫论坛的版主,也是业内畅销的STM32开发板供应商野火嵌入式工作室的联合创始人。野火工作室是嵌入式开发方式中库开发方式的倡导者,也是针对初学者在业内推动学习库开发方法的排头兵。

目录

目  录
前言
第一部分 基础篇
第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指令控制R

前言/序言

  前言再版说明本书是《STM32库开发实战指南》的第2版,第1版解决了当时市面上几乎没有关于STM32库开发技术书籍的燃眉之急,并且受到了广大读者的好评。

  但由于技术的革新、读者的反馈以及自身经验的积累,我们发现第1版书籍还存在一些缺陷:目前配套的硬件开发板已更新换代,部分程序已不再适用;从寄存器开发过渡到库函数开发的教学过程不够平滑;介绍STM32各种外设的深入度不足。

  因此,第2版中对大部分的内容进行了改进:升级代码,匹配最新的开发板;增加了自行编写库函数的入门章节,引导读者加深对库函数原理的理解;每个章节增加了STM32外设框图剖析,增加了库函数结构体说明,使读者更了解基本原理,便于以后迁移至不同的芯片平台;以本书为教材,制作了教学课件,并录制了非常详细的教学视频,使之更适合于高校、培训机构及员工培训时使用。

  本书的学习顺序本书分为基础篇和提高篇。基础篇需要按照顺序学习,讲究循序渐进,步步为营。学习完基础篇之后,已经算是基本入门STM32开发了。提高篇属于高级例程,学习的时候并不一定要按照书中的章节排序,可根据需要跳跃式地学习。

  本书的编写风格本书着重讲解STM32F103的外设以及外设的应用,力争全面分析每个外设的功能框图和外设的使用方法,让读者可以全面、细致地掌握STM32F103系列芯片。基本每个章节对应一个外设,每章的主要内容大致分为3个部分:第1部分为简介,第2部分为外设功能框图分析,第3部分为代码讲解。

  外设简介是作者用自己的话把外设概括性地介绍一遍,力图语句简短,通俗易懂,并不会完全照抄数据手册的介绍。

  外设功能框图分析则是每章的重点,该部分会详细讲解功能框图中每个部分的作用,这是学习STM32F103的精髓所在,掌握了整个外设的框图则可以熟练地使用该外设,进而熟练地编程,日后学习其他型号的单片机也将会得心应手。因为即使单片机的型号不同,外设的框图也是基本一样的。这一步的学习比较枯燥,但是必须下功夫学,方能达成所愿。

  代码分析则是针对使用该外设的实验进行讲解,主要分析代码流程和一些编程的注意事项。在掌握了框图之后,代码部分则是手到擒来。

  本书的参考资料本书的主要参考资料为:《STM32F10x-?中文参考手册》《STM32F10x-?数据手册》以及《Cortex-M3权威指南》。它们是ST及ARM官方的资料,属于精华版,全面翔实,无所不包。限于篇幅问题,本书不可能面面俱到,只侧重于框图分析和代码讲解,有关寄存器的详细描述则略过。在学习本书的时候,涉及寄存器描述部分还请参考上述两本手册,这样学习效果会更佳。

  本书的配套资料硬件平台本书配套的硬件平台为:秉火STM32F103-指南者,型号简称为“指南者”,见图1。学习的时候如果基于该硬件平台做实验,必会达到事半功倍的效果,可以省去中间移植时遇到的各种问题。

  工程代码、原理图及课件本书中涉及的工程代码、开发板原理图以及课件均在秉火论坛提供:http://www.firebbs.cn。

  部分章节涉及的各种通信协议、字符编码以及芯片的数据手册均有相应的参考资料,如《I2C总线协议》《SPI总线协议》和《AT24C02》(EEPROM数据手册)等电子文档,也包含在相应章节的课件文件夹中。在阅读本书时请一定打开这些资料来配合阅读,特别是涉及通信协议的章节。

  教学视频为提高学习效率,我们为本书制作了配套的课件PPT以及教学视频,请到论坛http://www.firebbs.cn上观看或下载。

  本书的技术论坛如果在学习过程中遇到问题,可以到论坛http://www.firebbs.cn上发帖交流,开源共享,共同进步。

  鉴于水平有限,本书难免有纰漏,热心的读者也可把勘误发到论坛上,好让我们的技术不断完善,做得更好。祝广大读者学习愉快,STM32的世界中,秉火与您同行!



深入浅出STM32微控制器高级应用与实战技巧 本书是一本专注于STM32微控制器深度探索与实际应用的书籍,旨在为具有一定STM32基础的工程师、开发者以及爱好者提供一套系统、全面的进阶学习路径。我们将抛开基础概念的重复,直接切入STM32微控制器在复杂系统设计中的核心技术与高级特性,通过详实的案例分析和工程实践,帮助读者真正掌握STM32的应用精髓,提升解决实际工程问题的能力。 核心技术深度剖析: 本书将围绕STM32微控制器的关键外设和高级功能展开深入讲解。我们将不仅仅停留在API接口的调用,而是深入探究这些外设的工作原理、寄存器配置细节以及与其他外设的协同工作方式。 高级定时器与PWM控制: 详细解析STM32高级定时器(如TIM1、TIM8)的内部架构,包括计数器模式、输入捕获、输出比较、刹车(BRK)等功能的精细配置。重点讲解如何利用高级定时器实现高精度、多通道的PWM输出,应用于电机控制(如BLDC无刷电机驱动)、LED调光、精密信号生成等场景。我们将剖析PWM的死区时间设置、互补输出、紧急停止等关键技术,并给出实际电路设计与代码实现。 ADC与DAC的高级应用: 深入分析STM32 ADC的转换原理、多通道扫描模式、DMA传输、外部触发转换等高级特性。讲解如何优化ADC采样率、提高转换精度,以及如何通过ADC实现数据采集、模数混合信号处理等。对于DAC,我们将探讨其输出精度、多通道使用、电压/电流输出模式,以及如何结合ADC实现音频播放、波形生成等功能。 通信协议栈的深度解析与实战: USART/UART的高级通信: 不仅限于简单的串口收发,我们将重点讲解IrDA、LIN总线等应用,以及如何通过DMA实现高速、大批量数据的异步传输。对于多核通信场景,我们将探讨如何利用UART实现主机与从机之间的可靠通信。 SPI与I2C的总线深度探索: 深入解析SPI的Master/Slave模式、全双工通信、DMA模式,以及如何高效驱动SPI接口的外设,如SPI Flash、SD卡、OLED显示屏等。对于I2C,我们将讲解多主控、总线仲裁、时钟拉伸等机制,并重点关注如何稳定可靠地连接多个I2C设备,如传感器、EEPROM等。 USB设备的开发: 从USB协议入门,详细讲解STM32作为USB Device(HID、CDC、MSC等)的开发流程。我们将剖析USB枚举过程、端点管理、数据传输方式,并提供基于USB的通信应用实例,如自定义USB鼠标/键盘、虚拟串口等。 Ethernet网络的通信: 针对STM32内置Ethernet MAC或通过外部PHY芯片实现的以太网接口,我们将讲解TCP/IP协议栈的移植与应用,包括DHCP、DNS、HTTP服务器/客户端等。通过实际项目,演示如何构建嵌入式网络设备,实现远程监控、数据上传等功能。 CAN总线的工程化应用: 深入分析CAN协议的核心概念,包括帧格式、仲裁机制、错误处理等。重点讲解STM32 CAN控制器的配置,如何实现高效的报文发送与接收,并结合实际应用场景,如汽车电子、工业自动化中的分布式控制系统,演示CAN总线的组网与通信策略。 DMA的精髓与效率提升: DMA(Direct Memory Access)是STM32性能优化的关键。我们将深入讲解DMA的通道管理、请求源、传输模式(普通模式、循环模式)、数据宽度、地址递增/递减等配置。通过实际案例,演示如何利用DMA实现ADC数据高速采集、UART/SPI/Ethernet数据的零CPU干预传输,显著提升系统整体效率。 RTOS(实时操作系统)的集成与高级应用: 在复杂系统中,RTOS是不可或缺的。本书将重点介绍FreeRTOS等主流RTOS在STM32上的移植与应用。我们将深入讲解任务创建与调度、信号量、互斥锁、消息队列、事件标志组等RTOS核心机制,并指导读者如何通过RTOS构建模块化、可维护的高并发实时系统。我们将通过具体项目,展示RTOS在多任务协同、中断处理、低功耗管理等方面的强大能力。 内存管理与存储器扩展: 讲解STM32内部Flash和SRAM的结构与访问机制。对于外部存储器的扩展,我们将重点介绍SDRAM、NAND Flash、NOR Flash的接口原理和驱动开发,以及如何在有限的内存资源下进行高效的程序设计和数据管理。 项目驱动的实战演练: 理论与实践相结合是本书的另一大亮点。我们将通过一系列贴近实际工程需求的综合性项目,引导读者将所学知识融会贯通,并解决实际问题。 高性能电机驱动控制器: 设计一个基于STM32的BLDC无刷电机驱动控制器,集成高级定时器PWM输出、ADC电流采样、编码器/霍尔传感器位置反馈,并可能结合RTOS实现复杂的控制算法。 多功能数据采集与分析终端: 构建一个集成了多种传感器(温度、湿度、压力、光照等)的数据采集终端,利用ADC、I2C、SPI等接口读取传感器数据,通过UART或Ethernet将数据发送至上位机进行存储和分析,可进一步集成SD卡进行本地存储。 嵌入式网络通信网关: 开发一个能够连接多种通信接口(如CAN、RS485、Ethernet)的网关设备,实现不同网络之间的数据转发和协议转换,并提供Web服务器供远程配置和监控。 USB驱动设备开发: 实际开发一个自定义USB设备,例如一个集成了触摸屏控制和数据传输功能的USB设备,深入理解USB协议的实现细节。 RTOS下的复杂任务调度与协同: 设计一个多任务的智能家居控制系统,利用RTOS管理不同功能的任务(如灯光控制、传感器监测、网络通信),并实现任务间的协同与资源共享。 读者对象: 已掌握STM32基础编程(如HAL库或LL库入门)的嵌入式系统工程师、硬件工程师、软件开发人员。 希望深入理解STM32微控制器内部机制,提升问题解决能力的开发者。 正在进行或计划进行复杂嵌入式系统开发的学习者。 对嵌入式系统性能优化、实时性要求高的项目开发者。 对STM32在特定领域(如物联网、工业自动化、汽车电子)的应用感兴趣的技术人员。 学习目标: 通过本书的学习,读者将能够: 精通STM32系列微控制器的核心外设高级功能。 掌握在实际工程项目中合理选择和配置STM32外设。 熟练运用DMA、RTOS等技术提高系统性能和实时性。 独立完成具有挑战性的嵌入式系统项目的设计与开发。 深入理解嵌入式软件开发中的调试技巧和性能优化策略。 为应对未来更复杂的嵌入式系统开发挑战打下坚实基础。 本书力求通过详实的内容、严谨的论述和丰富的实践案例,为广大STM32开发者提供一条通往精通之路。我们相信,掌握了本书中的知识与技巧,您将能够自信地驾驭更复杂、更具挑战性的嵌入式项目。

用户评价

评分

这本书的封面设计得很专业,采用蓝白色调,给人一种科技感和专业感。封面上的书名醒目,字体清晰,加上“第2版”和“基于STM32F103”的副标题,立刻就让目标读者知道这本书的内容核心。对于我这种刚接触STM32不久的开发者来说,看到“实战指南”几个字就觉得很有吸引力,希望能通过这本书找到具体的开发案例和解决方案,而不是晦涩的理论。我特别期待书中能够深入讲解STM32F103这款经典的MCU,因为它在很多嵌入式项目中都有广泛应用,掌握它的开发技巧至关重要。同时,“第2版”的字样也暗示了这本书可能在第1版的基础上进行了更新和优化,内容应该更贴近当前的开发需求和技术发展。我希望书中能包含一些实际项目开发的流程和技巧,比如如何搭建开发环境、如何调试代码、如何优化性能等,这些都是在实际工作中非常有价值的信息。此外,作者的专业背景和经验也很大程度上影响了我对这本书的期待。如果作者在嵌入式领域有深厚的积累,那么这本书的内容质量和深度就更有保障。总的来说,从封面设计和书名来看,这本书给我留下了一个非常积极的印象,让我对它充满了期待,希望能从中学习到实用的STM32开发知识。

评分

我的目标是希望通过学习能够快速上手STM32F103的开发,并能够独立完成一些基础的嵌入式项目。因此,我非常看重这本书的学习路径设计和内容的组织结构。我希望这本书能够从最基础的开发环境搭建开始,逐步深入到各种外设的驱动开发和应用实例。对于新手而言,清晰的逻辑顺序和循序渐进的难度非常重要。我希望书中能提供一些学习资源,比如源代码、电路图、开发板介绍等,方便读者跟着书本进行实践操作。如果书中能够包含一些常见的调试技巧,例如使用ST-Link进行在线调试,或者分析代码运行中的一些异常情况,那就更有帮助了。我希望这本书能够帮助我建立起对STM32整体开发流程的理解,并且能够掌握解决实际问题的能力,而不是死记硬背一些API。例如,如果书中能够对某些关键的API进行深入讲解,分析其底层原理和应用场景,将非常有益。

评分

我之前对嵌入式开发有过一些接触,也看过一些相关的书籍,但总感觉理论性太强,或者案例不够典型,难以迁移到自己的项目中。这次选择《STM32库开发实战指南(第2版):基于STM32F103》,主要是看中了“实战”二字,希望它能提供更多可以直接参考和模仿的实际项目。我特别关心书中是否会涉及到一些常见的嵌入式应用场景,比如传感器数据采集、电机控制、通信协议实现(如UART、SPI、I2C)等等。如果能有完整的项目代码示例,并附带详细的解释,那就太完美了。我希望这本书能帮助我理解库函数的使用,但更重要的是,能教我如何根据具体需求,灵活运用这些库函数来解决实际问题。因为STM32F103是一款非常成熟且应用广泛的芯片,市面上相关的资料也很多,但找到一本能够真正指导我从零开始构建一个完整项目的书却不容易。我希望这本书能填补这个空白,让我能够更自信地去应对各种嵌入式开发任务,并且能够理解项目背后的设计思路和优化方法,而不是仅仅停留在“搬代码”的层面。

评分

我个人在学习新技术时,喜欢有系统性的知识体系,并且希望能够看到不同技术之间的联系和融会贯通。对于《STM32库开发实战指南(第2版):基于STM32F103》,我期待它不仅能够讲解STM32的库函数,还能触及一些更广泛的嵌入式系统设计理念。例如,书中是否会讨论RTOS(实时操作系统)在STM32项目中的应用?是否会涉及一些嵌入式通信协议的原理和实现?是否会介绍一些常用的嵌入式软件架构模式?如果能够对STM32的内部架构,比如时钟系统、中断控制器、DMA等进行一些原理性的介绍,并与库函数的使用相结合,那么这本书的深度和广度就会大大提升。我希望这本书能够让我从一个“使用者”变成一个“理解者”,甚至是一个“创造者”。同时,考虑到STM32F103的广泛应用,我希望书中也能提及一些与它相关的生态系统,比如传感器、通信模块、显示屏等,以及如何将这些外围设备集成到STM32项目中。

评分

在选择技术书籍时,我总是会仔细评估作者的专业性和经验。对于《STM32库开发实战指南(第2版):基于STM32F103》这本书,我特别关注作者是否在STM32的开发领域有丰富的实践经验。毕竟,库函数开发看似简单,但要写出高效、稳定、易于维护的代码,并能解决实际项目中的复杂问题,则需要深厚的功底。我期望书中能够展示作者的独到见解和最佳实践,比如在代码组织、错误处理、性能优化等方面提供有价值的指导。我希望这本书不仅仅是讲解API的用法,更能传授一些“道”层面的东西,比如如何根据项目需求选择合适的库,如何深入理解STM32的硬件特性来优化软件设计,以及如何进行有效的调试和故障排查。考虑到“第2版”的更新,我猜测书中可能已经加入了对STM32 HAL库或LL库的更深入的介绍和对比,并且可能包含了对一些新出现的开发工具或技术趋势的探讨。如果书中能够引用一些作者实际参与过的项目案例,并深入剖析其中的技术难点和解决方案,那就更有说服力了。

评分

配上相应的板子,学起来很快乐

评分

很详细

评分

很适合初学STM32,

评分

不错

评分

信赖京东货真价实不错

评分

不错 就是第一页破损了

评分

东西不错,物流也可以

评分

朋友推荐的嵌入式开发书籍,拭目以待

评分

挺好

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有