《STM32单片机原理及应用基于STM32F103C8与STM32CubeMX》基于ARM Cortex-M3内核微控制器 STM32F103C8T6,详细讲述嵌人式控制系统的硬件设计与软件开发技术,主要内容包括STM32F103微控制器、STM32F103C8T6学习平台、LED灯控制程序设计、按键与中断处理、定时器、OLED屏与温度传感器、串口通信与Wi-Fi模块及机智云开发技术等。本书详细介绍了寄存器方法和基于STM32CubeMX的HAL编程方法,其特色在于模块化教学,实例丰富,配有实例演示视频。本书对基于STM32F1系列微控制器及机智云的教学与工程应用,都具有较好的指导和参考价值。
《STM32单片机原理及应用基于STM32F103C8与STM32CubeMX》可作为普通高等院校物联网工程、电子工程、通信工程、自动化、智能仪器、计算机工程、信息工程等相关专业的教材,也可作为嵌入式系统爱好者和工程开发人员的参考用书。
本书根据嵌入式系统与物联网技术的发展趋势,结合编者多年来在嵌入式技术领域的教学实践积累,按照嵌入式系统硬件设计模块化与软件设计组件化的原则,详细阐述了基于STM32F103C8T6微控制器的硬件学习平台及其设计方法,探讨了借助于机智云平台的物联网开发技术。本书内容理论性与实践性并重,突出学以致用的教学理念,实例丰富,并配有视频讲解。
?精心设计硬件系统 按照硬件模块化的设计思路,精心设计了基于STM32F103C8T6微控制器的通用硬件学习平台,该硬件系统的原理图是物联网技术的一款完整解决方案。强烈建议读者自行设计制作该学习平台(推荐使用嘉立创EDA),以强化硬件设计水平。
?工程实例完整丰富 结合硬件模块的应用精心组织了全部工程实例,通过各个工程实例共享程序模块的方法,在有限的篇幅中,使全书的每个工程实例都是完整的,强烈建议读者由零开始完成各个工程,以增强学习的乐趣。
?主流程序设计方法 细致全面地讲述了寄存器程序设计方法和硬件抽象语言(HAL)程序设计方法。寄存器程序设计方法适合电子工程类专业学生学习,HAL程序设计方法适合计算机工程类专业学生学习。两种主流的程序设计方法,相得益彰,互为裨益。
?理论与应用相结合 以模块化的方法阐述硬件基础理论,以实例牵引的方法讲述硬件通用模块系统化方法,在硬件模块基础上讲述外设驱动程序设计方法,理论与应用相结合,硬件与软件相结合,便于读者系统掌握嵌入式技术。
自1971年第一块单片机诞生至今,嵌入式系统经历了发展初期和蓬勃发展期,现已进入了成熟期。在嵌入式系统发展初期,各种电子设计自动化(Electronic Design Automation,EDA)工具还不完善,芯片的制作工艺较复杂,制作成本颇高,嵌入式程序设计语言以汇编语言为主,该时期只有电子工程专业技术人员才能从事嵌入式系统设计与开发工作。到了20世纪80年代,随着MCS51系列单片机的出现及C51程序设计语言的成熟,单片机应用系统成为嵌入式系统的代名词,MCS51单片机迅速在智能仪表和自动控制等相关领域得到普及。同时期,各种数字信号处理器(Digital Signal Processor,DSP)芯片、现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片和单片系统(System on a Chip,SoC)芯片如雨后春笋般涌现出来,应用领域从最初的自动控制应用扩展到各种各样的智能应用系统。1997年,ARM公司推出ARM7微控制器,之后推出Cortex系列微控制器和微处理器,成为嵌入式系统设计的首选芯片,标志着嵌入式系统进入蓬勃发展期。
本书基于ARM CortexM3内核微控制器芯片STM32F103C8T6,详细讲述嵌入式控制系统的硬件设计与软件开发技术。STM32F103C8T6芯片体积小,功耗低,片上资源紧凑,通用输入/输出口有37个,核心工作频率最高达72MHz,片上Flash空间为64KB,RAM空间为20KB,支持C语言编程控制,易学易用,是替代传统8051系列单片机的最佳选择。本书按照强化学生应用能力与实践能力的教学思想,编排了一套适合学生分组设计的硬件电路系统(选用了具有48只引脚LQFP封装的STM32F103C8T6芯片,适合学生手工焊装),在此硬件电路系统的基础上,介绍组织嵌入式控制设计与编程知识,偏重阐述片内外设控制技术、OLED屏、RS485总线和WiFi模块等。
全书内容分为8章。第1章介绍ARM CortexM3内核微控制器芯片STM32F103C8T6的内部结构、引脚配置、存储器、片内外设、异常与NVIC中断等。第2章介绍一个完整的硬件电路系统,包括STM32F103C8T6核心电路,电源电路,LED灯与蜂鸣器驱动电路、按键控制电路,温度测量电路,RS485总线电路,WiFi接口、OLED屏接口和扩展接口,JIAG接口、电池接口与BOOT控制电路等。这部分内容作为学生分组制作硬件电路的参考蓝图,也是后面程序设计的硬件电路基础。第3章讨论STM32F103C8T6的GPIO访问方法及LED灯控制技术,并完整地介绍基于Keil MDK创建工程的方法,后面的工程均基于该工程框架。第4章深入分析NVIC中断的工作原理,重点介绍GPIO外部输入中断的处理方法,并给出按键响应实例。第5章阐述STM32F103C8T6内部通用定时器、看门狗定时器、实时时钟和系统节拍定时器的应用与实例,其中,系统节拍定时器主要用于为嵌入式实时操作系统提供时钟节拍(一般设为100Hz)。第6章介绍OLED屏显示控制技术,并阐述温度传感器DS18B20的应用方法,展示OLED屏显示环境温度值的应用实例。第7章介绍RS485总线通信方法和WiFi模块用法,串口通信一般借助中断方式从上位机接收串口数据,通过函数调用方式向上位机发送串口数据。第8章基于机智云平台介绍终端设备通过WiFi模块联网通信的程序设计方法,实现Android手机远程实时显示STM32F103C8T6学习板上的温度信息。
本书具备嵌入式开发知识的完整性和可扩展性。通过本书的教学活动,展示给读者一个从事嵌入式系统设计的认知应用提高的全过程。认知体现为对嵌入式系统核心芯片的学习和掌握,重点在于学习一款芯片的存储器、中断与片内外设(合称为芯片的三要素),这也是第1章关于STM32F103C8T6芯片的重点内容; 应用体现在应用芯片进行嵌入式电路板的设计,并掌握各个电路模块的工作原理和访问技术,会应用C语言进行驱动函数与应用程序设计,即第2~7章的全部内容; 提高是指将该电路板底层硬件的访问方法抽象为函数调用,并实现智慧终端通过WiFi模块联网通信的程序设计,即第8章的内容,使没有硬件电路设计基础的软件工程师可在此基础上开发出高性能的用户应用程序,并实现友好的图形用户界面。建议授课教师先讲授第2章内容并组织学生分组设计电路板,再按顺序讲授第1章和第4~7章内容,第8章内容根据专业培养方案选学。
本书中的全部工程都是完整且相互联系的,后续章节的工程建立在前面章节工程的基础上,是添加了新的功能而构建的。本书以有限的篇幅巧妙地将所有工程的源代码都包含进来,强烈建议读者自行录入源程序,以加强学习效果。请使用Keil MDK 5.39或更高版本编写与调试本书工程程序。
本书第2章的学习平台是一个完整的硬件平台,也是需要学生分组开展设计的硬件实验平台,包括原理图设计与PCB设计(可使用Altium Designer软件)、制板、焊装、样机测试等。一般地,一个小组可在两周时间内独立完成这些工作。同时,本书的所有工程均使用这个硬件学习平台测试通过。本书由江西财经大学软件与物联网工程学院张勇组织编写,唐颖军参编了第3章,陈爱国参编了第4章,赵敏参编了第5~7章,单丹参编了第8章。感谢清华大学出版社刘星、李锦编辑对本书出版付出的辛勤工作。
党的二十大报告中指出教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑 坚持把发展经济的着力点放在实体经济上,推进新型工业化 推动战略性新兴产业融合集群发展,构建新一代信息技术、人工智能、生物技术、新能源、新材料、高端装备、绿色环保等一批新的增长引擎 加快发展物联网。在党的二十大思想指引下,本书将硬件设计与软件控制相结合,将微控制器技术的教学与实践相结合,培养兼有基础理论知识和工程实用能力的新工科大学生,培养服务于新一代信息技术和物联网技术的专业型人才。
配 套 资 源
程序代码等资源: 扫描目录上方的二维码下载。
教学课件、教学大纲等资源: 到清华大学出版社官方网站本书页面下载,或者扫描封底的书圈二维码在公众号下载。
微课视频(99分钟,24集): 扫描书中相应章节中的二维码在线学习。
注: 请先扫描封底刮刮卡中的文泉云盘防盗码进行绑定后再获取配套资源。
作者于江西财经大学麦庐园 2025年3月