前言PREFACE
“青山遮不住,毕竟东流去”,虽然我们对经典的8位单片机(如MCS51)、16位单片机(如MSP430)积累了大量的技术资料,用起来得心应手,但是单片机复杂的指令、较低的主频、有限的存储空间、极少的片上外设,使其在面对复杂应用时捉襟见肘、难以胜任。尽管8位、16位单片机的应用不会就此结束,但可以肯定的是32位处理器时代已经到来,其性能得到了显著提升,片上资源更加丰富,功能也越来越复杂和完善。
选题背景
在这个大环境下,ARM CortexM3处理器诞生了!由于采用了最新的设计技术,它的逻辑门数更低,性能却更强。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CortexM3上运行得很快。
基于ARM的嵌入式系统因为其功能复杂、芯片系列多、开发模式各异,不仅难教而且难学。但是由于各行各业对控制器能力要求“得寸进尺”,而32位嵌入式系统性价比不断提高,促使编者下定决心转型ARM嵌入式开发,经过几年的努力,虽历经风雨,但终见彩虹。
回想学习和教学过程,有几点经验要和大家分享: 一是要选择一个合适的内核,ARM嵌入式处理器无疑是主流产品,市场占有率相当高; 二是要选择合适的基于ARM内核的微控制器,目前意法半导体有限公司(ST Microelectronics)推出的32位CortexM内核的MCU产品市场占有率很高,技术资料全面,官方固件库易学易用; 三是要选择一本合适的教材,编者认为一本好的嵌入式教材应该能够做到由浅入深、循序渐进组织教学内容,理论与实践相结合,“共性”和“个性”兼顾——既能较为系统地介绍嵌入式系统的基本概念和一般原理,又能指导初学者在实际软硬件环境中进行开发实践。
主要内容
针对上述情况,编者根据多年的嵌入式系统教学和开发经验,试图做到内容循序渐进,理论实践并重,共性与个性兼顾,将嵌入式系统的理论知识和基于ARM CortexM3内核的STM32F103微控制器的实际开发经验相结合,编写了本书。
全书共有15章,划分为3部分。
第1部分(第1~3章)为系统平台模块,第1章介绍嵌入式系统定义、ARM内核,以及基于ARM CortexM3内核的STM32微控制器; 第2章对STM32嵌入式开发板硬件平台各模块进行详细介绍; 第3章介绍Keil MDK软件并进行工程模板创建。
第2部分(第4~9章)为基本外设模块,分别对STM32嵌入式系统最常用外设模块进行介绍。第4章讲解通用目的输入输出口,第5章讲解LED流水灯与SysTick定时器,第6章讲解按键输入与蜂鸣器,第7章讲解数码管动态显示,第8章讲解中断系统与基本应用,第9章讲解定时器与脉冲宽度调制。
第3部分(第10~15章)为扩展外设模块,分别对STM32嵌入式系统高级外设模块进行介绍。第10章讲解串行通信接口USART,第11章讲解SPI与OLED显示屏,第12章讲解模拟数字转换器,第13章讲解直接存储器访问,第14章讲解I2C接口与EEPROM,第15章讲解RTC与DS18B20传感器。
无论是基本外设模块,还是扩展外设模块,从第4章到第15章,每章都先对模块涉及的理论知识进行讲解,然后引入项目实例,给出项目实施的具体步骤,项目可以在课堂上完成。整个教学理论与实践一体,学中做,做中学。
本次修订内容
为紧跟技术潮流,持续提升图书质量,编者启动了本次修订工作,主要修订内容如下。
(1) 对模板、文件和代码进行优化,使其结构更加合理,运行更加高效。
(2) 加强了对STM32F103微控制器硬件原理的讲解,包括时钟树和存储器映射等内容,更新教材配套开发板硬件电路。
(3) 将STM32F1系列固件库版本由v3.5升级至v3.6,将嵌入式系统集成开发软件Keil MDK版本由v4.74升级至v5.35。
(4) 增加了对单总线温度传感器DS18B20原理与接口技术的讲解,并为其与RTC模块一起设计了一个综合应用实例。
特色创新
相比于传统的单片机或嵌入式教材,本书特色及改革创新点如下。
(1) 内容新颖,与时俱进。
本书以基于ARM CortexM3内核的STM32F103微控制器为蓝本,讲解嵌入式系统原理及应用,带领读者跨入32位微控制器时代。软件开发使用高级程序设计语言,基于库函数方式,使读者从对底层寄存器的查找和读写工作中解脱出来,而将精力专注于应用程序开发,显著降低了学习难度和门槛,提高了学习效率。
(2) 理实结合,软硬并重。
本书理论与实践相结合,遵循理论够用,重在实践原则,对于每个典型外设模块,在简明扼要地阐述其原理的基础上,围绕其应用,均以一个以上完整案例的形式讨论其设计精髓。本书突出硬件原理讲解,强调底层驱动设计,从最基本的硬件原理和底层硬件出发,讲述无操作系统下的微控制器开发,期望改变嵌入式系统教学过程中重理论轻实践、软件强硬件弱的现状。
(3) 由浅入深,层层递进。
本书以学生认知过程为导向设计逻辑、组织章节内容,先硬件后软件,由浅入深,循序渐进。本书“共性”和“个性”兼顾,从一般到具体,以嵌入式系统的一般原理为主线,结合目前主流的嵌入式处理器和常用嵌入式集成开发工具,由内核到外设逐步讲解,并给出具体应用实例。全书使用项目串联章节,环环相扣,层层递进,既有利于项目扩展,又方便软件移植,使教学过程愈发趋向于项目实战。
(4) 传承经典,守正创新。
ARM嵌入式系统实际上是8位单片机的升级扩展,但是其高性能必然对应复杂度的大幅提高,如果能借助8位单片机的共性的理念、方法和案例,有助于提升读者学习兴趣,使其轻松入门嵌入式开发。本书学习和借鉴了丰富的51单片机技术资料和参考例程,设计了很多源于51单片机又高于51单片机的经典案例,做到了传承与发展的统一。
(5) 数字赋能,提质增效。
本书提供教学课件、微课视频、教学大纲、程序代码和学习素材等全方位、立体化的教学资源,既便于高校教师选用教材开展教学活动,又便于嵌入式技术人员自主学习。本书面向国内主流硬件开发平台,具有通用性,编者也自主设计配套开发板,可免费提供给选用教材的教师教学演示使用。本书附带数字资源,请读者扫描封四勒口处二维码获取。
致谢
在本书的编写过程中参阅了许多资料,在此对所参考资料的作者表示诚挚的感谢。在编写过程中还引用了互联网上最新资讯及报道,在此向原作者和刊发机构表示真挚的谢意,并对不能一一注明来源深表歉意。对于收集到的共享资料没有标明出处或找不到出处的,以及对有些资料进行加工、修改后纳入本书的,在此郑重声明,本书内容仅用于教学,其著作权属于原作者,并向他们表示致敬和感谢。
在本书的编写过程中得到了家人的理解和帮助,并且一直得到清华大学出版社盛东亮、范德一等各位老师的关心和大力支持,清华大学出版社的工作人员也付出了辛勤的劳动,在此谨向支持和关心本书编写的家人、同仁和朋友一并致谢。
由于嵌入式技术的发展日新月异,加之编者水平有限,书中难免有疏漏和不足之处,恳请广大读者批评指正。
编者
2025年8月
