内容简介
STM32F7原理与应用—HAL库版(上)
本套书籍以ST公司的STM32F767为目标芯片,详细介绍了STM32F7的特点、片内外资源的 使用,并辅以64(寄存器版本是65个)例程,由浅入深地介绍了STM32F7的使用。所有例程都经过 精心编写,从原理开始介绍,到代码编写、下载验证,一步步教读者如何实现。所有源码都配有详细注 释,且经过严格测试。另外,源码有生成好的hex文件,读者只需要通过仿真器下载到开发板即可看 到实验现象,亲自体验实验过程。 套书总共分为4册:
《 STM32F7原理与应用———寄存器版(上)》、《 STM32F7原理与应用———寄存 器版(下)》、
《 STM32F7原理与应用———HAL库版(上)》和《 STM32F7原理与应用———HAL库版(下)》。 本书是《 STM32F7原理与应用———HAL库版(上)》,分为3个篇:① 硬件篇,主要介绍本书的硬 件平台;② 软件篇,主要介绍STM32F7常用开发软件的使用以及一些下载调试的技巧,并详细介绍 几个常用的系统文件(程序);③ 实战篇,通过30个实例(后34个见下册)带领读者一步步深入了解 STM32F7。 本书适合STM32F7初学者和自学者学习参考,对有一定经验的电子工程技术人员也具有参考 价值。本书也可以作为高校电子、通信、计算机、信息等相关专业的教学参考用书。
前言/序言
套书前言
2014年底,意法半导体( ST)发布了STM32F7系列芯片。该芯片采用ARM公司 最近发布的最新、最强的ARMCo r t ex M7内核,其性能约为意法半导体原有最强处 理器STM32F4(采用ARMCo r t ex M4内核)的两倍。STM32F7系列微控制器的工 作频率高达216MHz,采用6级超标量流水线和硬件浮点单元( F l oa t i ngPo i n tUn i t, FPU),测试分数高达1000Co r eMa rk。 在STMCU高级市场部经理曹锦东先生的帮助下,作者有幸于2015年拿到了 STM32F7的样片和评估板。STM32F7强大的处理能力以及丰富的外设资源足以应 付各种需求,在工业控制、音频处理、智能家居、物联网和汽车电子等领域,有着广泛的 应用前景。其强大的DSP处理性能足以替代一部分DSP处理器,在中高端通用处理 器市场有很强的竞争力。 由于STM32F7和ARMCo r t ex M7公布都不久,除了ST官方的STM32F7文 档和源码,网络上很少有相关的教程和代码,遇到问题时也很少有人可以讨论。作为 STM32F7在国内较早的使用者,作者经过近两年的学习和研究,将STM32F7的所有 资源摸索了一遍,在此过程中,发现并解决了不少bug。为了让没接触过STM32F7的 朋友更 快、更 好 地 掌 握 STM32F7,作 者 设 计 了 一 款 STM32F7开 发 板(阿 波 罗 STM32F767开发板),并对STM32F7的绝大部分资源编写了例程和详细教程。这些 教程浅显易懂,使用的描述语言很自然,而且图文并茂,每一个知识点都设计了一个可 以运行的示例程序,非常适合初学者学习。 时至今日,书已成型,两年的时间包含了太多的心酸与喜悦,最终呈现给读者的是 包括:《 STM32F7原理与应用———寄存器版(上)》、《 STM32F7原理与应用———寄存器 版(下)》、《 STM32F7原理与应用———HAL库版(上)》和《 STM32F7原理与应用——— HAL库版(下)》共4本书的一套书籍。这主要有以下几点考虑: ①STM32F7的代码编写有两种方式:寄存器和 HAL库。寄存器方式编写的代 码具有精简、高效的特点,但是需要程序员对相关寄存器比较熟悉;HAL库方式编写 的代码具有简单、易用的特点,但是效率低,代码量较大。一般想深入学习了解的话,建 议选择寄存器方式;想快速上手的话,建议选择HAL库方式。实际应用中,这两种方 式都有很多朋友选择,所以分为寄存器和库函数两个版本出版。 ②STM32F7的功能十分强大,外设资源也非常丰富,因此教程篇幅也相对较大, 而一本书的厚度是有限的,无法将所有内容都编到一本书上,于是分成上下两册。
由于STM32F7的知识点非常多,即便分成上下两册,对很多方面也没有深入探 讨,需要后续继续研究,而一旦有新的内容,我们将尽快更新到开源电子网(www. openedv. c om)。 STM32F7简介 STM32F7是ST公司推出的第一款基于ARMCo r t ex M7内核的微处理器,具 有6级流水线、硬件单/双精度浮点计算单元、 L1I /DCa che、支持F l a sh零等待运行代 码、支持DSP指令、主频高达216MHz,实际性能是STM32F4的两倍;另外,还有 QSPI、 FMC、 TFTLCD控制器、 SAI、 SPDIF、硬件JPEG编解码器等外设,资源十分 丰富。 套书特色 本套书籍作为学习STM32F7的入门级教材,也是市面上第一套系统地介绍 STM32F7原理和应用的教材,具有如下特色: 最新。新芯片,使用最新的STM32F767芯片;新编译器,使用最新的MDK5. 21 编译器;新库,基于ST主推的 HAL库编写(HAL库版)代码,不再使用标 准库。 最全。书中包含了大量例程,基本上STM32F7的所有资源都有对应的实例,每 个实例都从原理开始讲解→硬件设计→软件设计→结果测试,详细介绍了每个 步骤,力求全面掌握各个知识点。 循序渐进。书本从实验平台开始→硬件资源介绍→软件使用介绍→基础知识 讲解→例程讲解,一步一步地学习STM32F7,力求做到心中有数,循序渐进。 由简入难。书本例程从最基础的跑马灯开始→最复杂的综合实验,由简入难, 一步步深入,完成对STM32F7各个知识点的学习。 无限更新。由于书本的特殊性,无法随时更新,一旦有新知识点的教程和代码, 作者都会发布在开源电子网( www. openedv. c om),读者多关注即可。 套书结构 本套书籍一共分为2个版本,共4本:《 STM32F7原理与应用———寄存器版(上)》、
《 STM32F7原理与应用———寄存器版(下)》、《 STM32F7原理与应用———HAL库版 (上)》和《 STM32F7原理与应用———HAL库版(下)》。其中,寄存器版本全部基于寄 存器操作,精简高效,适合深入学习和研究;HAL库版本全部采用HAL库操作,简单 易用,适合快速掌握和使用。上册详细介绍了实验平台的硬件、开发软件的入门和使 用、新建工程、下载调试和30个基础例程,并且这30个基础例程绝大部分都是针对 STM32F7内部一些基本外设的使用,比较容易掌握,也是灵活使用STM32F7的基础。 对于想入门,或者刚接触STM32F7的朋友,上册版本是您的理想之选。下册则详细介 绍了34/35(寄存器版多了综合实验)个高级例程,针对STM32F7内部的一些高级外设 和第三方代码( FATFS、 Lwi p、 μC/OS和音频解码库等)的使用等做了详细介绍,对学习者要求比较高,适合对STM32F7有一定了解、基础比较扎实的朋友学习。 本套书籍的结构如下所示:
使用本套书籍 对于时间充足、有过单片机使用经验、对底层驱动感兴趣的朋友,建议选择寄存器 版本学习。因为它全部是基于最底层的寄存器操作,对学习者要求比较高,需要较多的 时间来掌握,但是学会之后,编写代码思路会清晰很多,而且代码精简,效率极高。 对于想快速入门、对底层接口兴趣不大,专注应用层软件的朋友,建议选择 HAL 库版本学习。因为它的底层驱动,全部由ST官方写好了,读者只须学会函数和参数的 使用,就能实现对相关外设的驱动,有利于快速编写驱动代码,无须繁琐地查看寄存器, 容易入门,能有更多的时间来实现应用层的功能。 对于没有学习过STM32F7的初学者,建议先学习上册的内容,它对STM32F7的 软硬件开发环境进行了详细的介绍,从新建工程教起,包括30个STM32F7内部资源 使用的基础例程,每个例程都有详细的解说和示例程序,非常适合初学者入门。 对于有一定单片机编程基础、对STM32F7有一定了解(最好学过本套书籍上册内 容)、想进一步提高的朋友,推荐学习下册内容,它对STM32F7的一些高级外设有详细 介绍和参考代码,并且对第三方代码组件也有比较详细的介绍,非常适合较大工程的 应用。 致 谢 感谢北京航空航天大学出版社,它的支持才让本套书籍得以和大家见面。 感谢开源电子网的网友,是他们的支持和帮助才让我一步一步走了下来,其中有一 些朋友(包括周莉、刘勇财、刘海涛、李振勇、罗建、黄树乾、吴振阳、彭立峰等)还参与了
本套书籍的审校和代码审核工作,特别感谢:八度空间、春风、 j e r ymy_z、 yyx112358等 网友,他们参与了本书的审校工作。是众多朋友的认真工作,才使得本套书籍可以较早 地出版。 由于作者技术水平有限,精力有限,书中难免出现错误和代码设计缺陷,恳请读者 批评指正(邮箱: l i u j un6037@f oxma i l. c om)。读者可以在开源电子网( www. openedv. c om)免费下载到本套书籍的全部源码,并查看与本套书籍对应的不断更新的系列 教程。
刘 军 2017年2月于广州
前言
作为Co r t ex M系列通用处理器市场的最大占有者, STM32以其优异的性能、超 高的性价比、丰富的本地化教程,迅速占领了市场。ST公司自2007年推出第一款 STM32以来,先后推出了STM32F0/F1/F2/F3/F4/F7等系列产品,涵盖了Co r t ex M0/M3/M4/M7等内核,总出货量超过18亿颗,是ARM公司Co r t ex M系列内核的 霸主。 STM32F7系列是ST推出的基于ARMCo r t ex M7内核的处理器,采用6级流 水线,性能高达5Co r eMa rk/MHz,在200MHz工作频率下测试数据高达1000Co r e Ma rk,远超此前性能最高的STM32F4( Co r t ex M4内核)系列(DSP性能超过 STM32F4的两倍)。 STM32F76x系列(包括STM32F765/767/768/769等),主要有如下优势: 更先进的内核,采用Co r t ex M7内核,具有16KB指令/数据Ca che,采用ST 独有的自适应实时加速技术( ARTAc c e l e r a t o r),性能高达5Co r eMa rk/MHz。 更丰 富 的 外 设,拥 有 高 达512KB的 片 内 SRAM,并 且 支 持 SDRAM、带 TFTLCD控制器、带图形加速器( Cho rmeART)、带摄像头接口( DCMI)、带硬 件JPEG编解码器、带QSPI接口、带SAI&I; 2S音频接口、带SPDIFRX接口、 USB高速OTG、真随机数发生器、 OTP存储器等。 更高的性能, STM32F767最高运行频率可达216MHz,具有6级流水线,带有 指令和数据Ca che,大大提高了性能,性能大概是STM32F4的两倍。而且 STM32F76x自带了双精度硬件浮点单元( DFFPU),在做DSP处理的时候具有 更好的性能。 STM32F76x系列自带了LCD控制器和SDRAM接口,对于想要驱动大屏或需要 大内存的朋友来说,是个非常不错的选择;更重要的是集成了硬件JPEG编解码器,可 以秒解JPEG图片,做界面的时候可以大大提高加载速度,并且可以实现视频播放。本 书将以STM32F767为例,向大家讲解STM32F7的学习。 内容特点 学习STM32F767有几份资料经常用到:《 STM32F7中文参考手册》、《 STM32F7xx 参考手册》英文版、《 STM32F7编程手册》。 其中,最常用的是《 STM32F7中文参考手册》。该文档是ST官方针对STM32F74x / 75x的一份中文参考资料,里面有绝大部分寄存器的详细描述,内容翔实,但是没有实例,也没有对Co r t ex M7构架进行大多介绍,读者只能根据自己对书本的理解来编写 相关代码。另外,对STM32F767特有的部分外设(比如硬件JPEG编解码器、 DFSDM 等),则必须参考《 STM32F7xx参考手册》英文版来学习。
《 STM32F7编程手册》文档则重点介绍了Co r t ex M7内核的汇编指令及其使用、 内核相关寄存器(比如SCB、 NVIC、 SYSTICK等寄存器)是《 STM32F7中文参考手册》 的重要补充。很多在《 STM32F7中文参考手册》无法找到的内容,都可以在这里找到 答案,不过目前该文档没有中文版本,只有英文版。 本书将 结 合 以 上3份 资 料,从 寄 存 器 级 别 出 发,深 入 浅 出 地 向 读 者 展 示 STM32F767的各种功能。总共配有65个实例,基本上每个实例均配有软硬件设计, 在介绍完软硬件之后马上附上实例代码,并带有详细注释及说明,让读者快速理解 代码。 这些实例涵盖了STM32F7的绝大部分内部资源,并且提供了很多实用级别的程 序,如内存管理、 NANDF l a shFTL、拼音输入法、手写识别、图片解码、 IAP等。所有实 例均在 MDK5. 21A编译器下编译通过,读者只须下载程序到 ALIENTEK阿波罗 STM32开发板即可验证实验。 读者对象 不管你是一个STM32初学者,还是一个老手,本书都非常适合。尤其对于初学 者,本书将手把手地教你如何使用 MDK,包括新建工程、编译、仿真、下载调试等一系 列步骤,让你轻松上手。本书不适用于想通过HAL库学习STM32F7的读者,因为本 书的绝大部分内容都是直接操作寄存器的;如果想通过HAL库学习STM32F7,可看 本套书的HAL库版本。 配套资料 本书的实验平台是ALIENTEK阿波罗STM32F7开发板,有这款开发板的朋友 可以直接拿本书配套资料上的例程在开发板上运行、验证。而没有这款开发板而又想 要的朋友,可以上淘宝购买。当然,如果已有了一款自己的开发板,而又不想再买,也是 可以的,只要你的板子上有和ALIENTEK阿波罗STM32F7开发板上的相同资源(需 要实验用到的),代码一般都是可以通用的,你需要做的就只是把底层的驱动函数(比如 I /O口修改)稍做修改,使之适合你的开发板即可。 本书配套资料包括ALIENTEK阿波罗STM32F7开发板相关模块原理图( pd f格 式)、视频教程、文档教程、配套软件、各例程程序源码和相关参考资料等,所有这些资料 读者都可以在h t t p: //www. openedv. com/ t hr e ad 13912 1 1. h tml免费下载。
刘 军 2017年2月于广州
STM32F7原理与应用 HAL库版(上) 电子书 下载 mobi epub pdf txt