前言 为什么要写这本书 嵌入式系统的发展确实很快,从早期的8位单片机到目前主流的32位单片机,从早期的裸机程序开发到目前基于嵌入式操作系统的开发,其应用已渗透到生产生活的各方面。处于嵌入式教育行业之中,作者深刻地感受到行业发展需要更多的嵌入式技术人才,具有一定开发经验的嵌入式工程师成为职场上的紧缺人才。 目前,国内大多数高校的电子信息类专业都开设了嵌入式相关课程,以满足嵌入式人才培养的需求。但是现有的嵌入式系统教材,或介绍基于寄存器版本二次封装后推出的标准库,或介绍国外的嵌入式操作系统。根据多年嵌入式系统教学和开发经验,为了介绍ST公司目前主推的HAL库和图形化配置软件STM32CubeMX,加快STM32F1系列微处理器的应用开发进程,同时为了让更多人了解和掌握国产嵌入式操作系统的应用开发,加快RTThread在高校的普及,作者编写了本书。 主要内容 本书共13章,从内容逻辑上分为三部分: 第1~8章为基础篇,第10、11章为操作系统篇,第9、12和13章为实践篇。 第1~8章首先讲述了嵌入式系统的概念及STM32F1的原理,从使用寄存器模式开发GPIO逐渐过渡到基于HAL库的开发模式,包括STM32中最典型的外设与功能模块,即GPIO、中断系统、定时器、串口通信、DMA、ADC与DAC、实时时钟与电源控制的应用开发;除了介绍微控制单元(micro controller unit,MCU)片内外设外,还介绍了LED、按键、蜂鸣器、数码管驱动程序的设计及应用。 第10、11章主要围绕实时操作系统展开,介绍了国产RTThread Nano的核心技术——线程管理、时钟管理、内存管理、中断管理、线程间同步与线程间通信,主要侧重系统应用。学完这部分内容,读者可以很好地入门嵌入式操作系统应用编程。 第9、12和13章分别介绍了使用HAL库的可校时电子钟综合应用实例、基于RTThread和STM32F1的步进电机控制系统和一个在HAL库与RTThread基础上实现的物联网综合实例。这些都是完整的综合性工程示例,可以帮助读者建立模块化思想,提高设计与开发嵌入式综合应用系统的能力。这些实例也适合在嵌入式系统开发实践类课程中使用。 上述章节都有配套的源程序,建议读者边阅读边实践,在学完一章的同时完成该章的示例代码。如果读者能够同步完成每章后面精心设计的练习题,将会获得更佳的学习效果。 配套资源 本书所有实验内容都是在作者设计的经过教学实践反复检验的嵌入式实验板上完成的,实验板的主控芯片为STM32F103VET6,有需要的读者可以联系作者购买。读者也可以使用其他STM32F103系列开发板完成本书实验,只需要改动一下程序中定义的接口即可。 STM32F103VE开发板 本书配套学习资源,为便于提高学习效率,作者精心设计了示例代码,编写了教学大纲,制作了教学课件,读者可登录http://www.tup.com.cn下载或直接与作者联系获得。 致谢 本书得到了温州大学教材建设项目的资助,由多位长期从事嵌入式系统教学的老师集体编写,除了封面所列作者外,温州大学智能锁具研究院技术部周志立博士、陈博博士及陈秋影工程师等也参与了本书代码编写工作,上海睿赛德电子科技有限公司罗齐熙对本书开发提出了宝贵建议。本书对SMT32和HAL库内容的编写参考了武汉安富莱电子有限公司、广州市星翼电子科技有限公司(正点原子)和东莞野火电子技术有限公司发布的开发板资料,对RTThread原理的介绍主要参考了上海睿赛德电子科技有限公司官网上的文档。在此郑重声明,本书内容仅用于教学,其著作权属于原作者。 由于嵌入式技术的发展日新月异,加之作者水平有限,编写时间仓促,书中难免存在一些错误或者不足之处,在此恳请广大读者批评指正。如果读者对本书有任何建议、意见和想法,欢迎和作者联系交流。 作者 2024年11月