前言
在现代工业与信息技术迅速发展的背景下,嵌入式系统作为一种专用的计算机系统,因具有高效、可靠、体积小和功耗低等特点,被广泛应用于自动控制、航空航天、医疗设备、工业自动化、机电控制、变频器、消费电子、物联网、通信网络和汽车等多个领域。在万物互联、信息共享的时代,嵌入式系统的应用变得更加广泛和深入,对微控制器的性能需求也在不断提高。
Arm架构的微控制器在芯片性能、设计资源、性价比等方面体现出来的显著优越性,使其成为当前嵌入式微控制器的主流架构。ARM公司以其不生产微控制器而只开发控制器内核架构的特殊角色吸引了国内外众多半导体厂家,这些半导体厂家纷纷通过获得ARM公司IP授权的方式来开发Arm系列微控制器,从而出现了Arm系列微控制器的应用热潮。微控制器已经从最初的8位、16位、32位向64位乃至更高位演变,嵌入式系统的运行速度也变得更快,资源更为丰富。
STM32作为一种高性能的Arm CortexM微控制器,以其丰富的功能集、强大的处理能力和低功耗设计,在嵌入式系统中占据了重要的地位。本书旨在为读者提供一个系统的STM32学习和应用指南,通过详细的理论讲解和丰富的实践案例,帮助读者深入理解STM32的架构、编程和应用开发。
本书从基础知识到高级应用,从理论讲解到实践案例,全方位地介绍了以STM32F407ZGT6为模型机的使用和开发。内容涵盖了嵌入式系统的基础知识、Arm处理器体系架构、STM32微控制器的详细介绍、开发工具与环境的搭建、STM32的高级特性和应用开发等。
本书把使用STM32CubeMX和STM32CubeIDE的开发方式称为STM32Cube开发方式,这种开发方式有以下几个优点。
(1) 使用的软件都是意法半导体有限公司(ST公司)提供的免费软件,可以及时获取ST公司官方的更新,而且避免了使用商业软件可能出现的知识产权风险。
(2) 使用STM32CubeMX进行MCU图形化配置并生成初始化代码,可大大提高工作效率,并且生成的代码准确性高、结构性好,降低了STM32开发的学习难度。
(3) 在STM32CubeIDE 中基于HAL库编程,只需遵循一些基本编程规则(例如中断处理的编程规则、外设初始化与应用分离的规则),就可以编写出高质量的程序,比纯手工方式编写代码效率高、质量高。
STM32Cube生态系统已经完全抛弃了早期的标准外设库,STM32系列MCU都提供HAL固件库以及其他一些扩展库。STM32Cube 生态系统的两个核心软件是 STM32CubeMX和STM32CubeIDE,都是由ST公司官方免费提供的。使用STM32CubeMX可以进行MCU的系统功能和外设图形化配置,可以生成MDKArm或STM32CubeIDE项目框架代码,包括系统初始化代码和已配置外设的初始化代码。如果用户想在生成的MDKArm或STM32CubeIDE初始项目的基础上添加自己的应用程序代码,只需把用户代码写在代码沙箱内,就可以在STM32CubeMX中修改MCU设置,重新生成代码,而不会影响用户已经添加的程序代码。
本书共分12章。
第1章 绪论。介绍嵌入式系统的基本概念、组成、操作系统、分类及应用领域,为读者提供嵌入式系统的基础知识。
第2章Arm处理器体系架构。深入讲解Arm处理器的体系架构、编程模型、内存管理和异常处理,为理解STM32微控制器奠定坚实的基础。
第3章STM32嵌入式微控制器。概述STM32微控制器、STM32F407ZGT6,并详细介绍STM32F407VGT6芯片的
内部结构和
引脚、功能及最小系统设计,全面剖析STM32微控制器的核心要素。
第4章STM32CubeMX和HAL库。通过讲解STM32CubeMX的安装、使用和项目配置,指导读者利用STM32CubeMX快速开始STM32的应用开发。
第5章STM32CubeIDE开发平台。介绍STM32CubeIDE的安装、操作、项目管理以及STM32仿真器的选择,帮助读者搭建STM32应用开发环境。
第6章STM32通用输入输出接口。详细介绍STM32的GPIO功能、配置方法和应用实例,展示如何通过STM32Cube和HAL库操作GPIO。
第7章STM32中断系统。深入讲解STM32中断系统的原理、配置和应用,通过外部中断设计实例,展示中断在STM32应用中的重要作用。
第8章STM32定时器系统。详细介绍STM32定时器的种类、功能和应用开发,通过定时器应用实例,指导读者利用定时器实现精确的时间控制和事件管理。
第9章STM32通用同步/异步收发器。介绍串行通信的基础知识和STM32的USART功能,通过串行通信应用实例,展示如何实现STM32的数据通信。
第10章STM32模数转换器(ADC)。深入讲解STM32的ADC结构、功能和应用开发,通过ADC应用实例,展示如何采集和处理模拟信号。
第11章STM32 DMA控制器。介绍STM32 DMA的概念、结构、功能和应用开发,通过DMA应用实例,指导读者高效地进行数据传输。
第12章 嵌入式实时操作系统FreeRTOS。介绍FreeRTOS系统的特点、功能和应用开发,通过任务管理应用实例,展示如何在STM32项目中使用FreeRTOS进行多任务管理和调度。
本书结合作者多年的科研和教学经验,遵循循序渐进、理论与实践并重、共性与个性兼顾的原则,将理论实践一体化的教学方式融入其中。书中实例开发过程用到的是目前使用最广的“正点原子STM32F407探索者开发板”,由此开发各种功能,书中实例均进行了调试。读者也可以结合实际或者手里现有的开发板开展实验,均能获得实验结果。
本书数字资源丰富,配有教学课件、程序代码、电路文件、教学大纲、习题答案和官方手册。读者可以在清华大学出版社网站下载。
对本书所引用参考文献的作者,在此一并表示真诚的感谢。
由于作者水平有限,加上时间仓促,书中错误和不妥之处在所难免,敬请广大读者不吝指正。
编者
2025年3月
