E-BOOK STM32F7原理与应用 HAL库版(下) 张洋,左忠凯,刘军 STM32F7原理与应用 HAL库版(下)

STM32F7原理与应用 HAL库版(下)

👤 张洋,左忠凯,刘军 📖 北 京航空航天大学出版社 📋 9787512423930 🌐 zh-CN
70
下载次数
4.8
用户评分

📦 下载本书

  • 外设使用难题:针对STM32F7高级外设(如LTDC、DMA2D、SAI等)提供详细原理讲解和HAL库例程,解决不知如何配置和使用的困惑。
  • 代码编写障碍:通过34个由浅入深的实验例程,从原理到代码实现,帮助读者克服编程中的常见错误和调试困难。
  • 学习路径迷茫:明确建议先读上册,再学下册,避免初学者因基础不牢而难以理解高级功能。
  • 实战经验缺乏:每个例程附有生成好的hex文件,读者可直接下载验证,快速积累实际项目经验。
  • 资源查找困难:作者基于两年研究经验,汇总常见bug和解决方案,减少读者在官方文档和网络上的摸索时间。
★★★
中级
入门初级中级进阶高级
  • STM32初学者:已掌握上册基础,希望深入STM32F7高级功能,提升实际开发能力。
  • 嵌入式工程师:需要快速上手STM32F7的HAL库开发,用于项目研发或产品迭代。
  • 电子相关专业学生:作为课程设计或毕业设计的参考,通过例程加深对嵌入式系统的理解。
  • 电子爱好者:对STM32F7感兴趣,想通过具体实验探索其高性能外设。
  1. 先修基础:务必先完成上册学习,熟悉HAL库基本外设(GPIO、串口、中断等)的使用。
  2. 按序阅读:建议按章节顺序学习,因为每个实验可能依赖前序实验的配置或知识。
  3. 动手实践:每章例程需亲自下载到开发板运行,观察现象,并尝试修改代码参数。
  4. 重点章节:LTDC、DMA2D、以太网和FreeRTOS是难点,可多花时间研读。
  5. 结合文档:遇到问题时,配合ST官方参考手册和HAL库源码进行深入理解。
  • 外设精通:掌握STM32F7高级外设的原理与HAL库配置方法,能够独立编写驱动。
  • 实战能力:通过34个实验,积累丰富的调试技巧和项目开发经验。
  • 系统思维:理解复杂嵌入式系统的模块化设计,学会整合多种外设实现综合功能。
  • 资源利用:学会查阅官方文档和网络资源,自主解决开发中的常见问题。
  • 性能优化:了解DMA2D、Cache等机制,提升代码效率和系统性能。

📖 书籍简介

内容简介
  STM32F7原理与应用—HAL库版(下)
  本套书籍以ST公司的STM32F767为目标芯片,详细介绍了STM32F7的特点、片内外资源的 使用,并辅以64个(寄存器版本是65个)例程,由浅入深地介绍了STM32F7的使用。所有例程都经 过精心编写,从原理开始介绍,到代码编写、下载验证,一步步教读者如何实现。所有源码都配有详细 注释,且经过严格测试。另外,源码有生成好的hex文件,读者只需要通过仿真器下载到开发板即可 看到实验现象,亲自体验实验过程。 套书总共分为4册:
  《 STM32F7原理与应用———寄存器版(上)》、《 STM32F7原理与应用———寄存 器版(下)》、
  《 STM32F7原理与应用———HAL库版(上)》和《 STM32F7原理与应用———HAL库版(下)》。 本书为《 STM32F7原理与应用———HAL库版(下)》,共34章,通过34个高级实验例程,带领大 家深入了解STM32F7的使用。对于没有学过STM32的初学者,强烈建议先阅读上册内容,再来学 习本书内容。 本书适合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年5月于广州
  前 言
  作为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年5月于广州

📑 章节目录

  1. STM32F7 HAL库开发基础回顾
  2. LTDC液晶显示控制器实验
  3. DMA2D图形加速器实验
  4. SAI音频接口实验
  5. SPDIF数字音频接收实验
  6. 硬件JPEG编解码器实验
  7. QSPI Flash读写实验
  8. FMC扩展SRAM实验
  9. 以太网通信实验
  10. USB主机与设备实验
  11. 摄像头接口DCMI实验
  12. 高级定时器与PWM输出实验
  13. 低功耗模式与唤醒实验
  14. FreeRTOS操作系统移植与多任务实验
  15. 综合项目实战:音频播放器设计